Move s2600 recipes to meson

Change-Id: Ibeb7cc66368fe47221f61184f1b06ec978f2b3c9
Signed-off-by: Rashmi R V <rashmi.r.v@intel.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644
index dafe344..0000000
--- a/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
-
-add_subdirectory(hsbp-manager)
-
-project(s2600wf-misc)
diff --git a/callback-manager/CMakeLists.txt b/callback-manager/CMakeLists.txt
deleted file mode 100644
index 44289ef..0000000
--- a/callback-manager/CMakeLists.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
-set (BUILD_SHARED_LIBRARIES OFF)
-include (ExternalProject)
-set (CMAKE_CXX_STANDARD 23)
-set (CMAKE_CXX_STANDARD_REQUIRED ON)
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
-set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti")
-
-option (YOCTO "Enable Building in Yocto" OFF)
-
-if (NOT YOCTO)
-    externalproject_add (
-        Boost URL
-        https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz
-        URL_MD5 5f521b41b79bf8616582c4a8a2c10177 SOURCE_DIR
-        "${CMAKE_BINARY_DIR}/boost-src" BINARY_DIR
-        "${CMAKE_BINARY_DIR}/boost-build" CONFIGURE_COMMAND "" BUILD_COMMAND ""
-        INSTALL_COMMAND mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/" && cp -R
-        ${CMAKE_BINARY_DIR}/boost-src/boost ${CMAKE_BINARY_DIR}/prefix/include
-    ) # requires apt install autoconf-archive and autoconf
-    externalproject_add (sdbusplus-project PREFIX
-                         ${CMAKE_BINARY_DIR}/sdbusplus-project GIT_REPOSITORY
-                         https://github.com/openbmc/sdbusplus.git GIT_TAG
-                         8a97100b806225df40c490eb748c9a4e1b3c11b3 SOURCE_DIR
-                         ${CMAKE_BINARY_DIR}/sdbusplus-src BINARY_DIR
-                         ${CMAKE_BINARY_DIR}/sdbusplus-build CONFIGURE_COMMAND
-                         "" BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/sdbusplus-src
-                         && meson build -Ddefault_library=static && ninja -C
-                         build libsdbusplus.a INSTALL_COMMAND ""
-                         LOG_DOWNLOAD ON)
-
-    include_directories (${CMAKE_BINARY_DIR}/sdbusplus-src)
-    include_directories (${CMAKE_BINARY_DIR}/nlohmann/include)
-    include_directories (${CMAKE_BINARY_DIR}/nlohmann/include/nlohmann)
-    include_directories (${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces/include)
-    link_directories (${CMAKE_BINARY_DIR}/sdbusplus-src/build)
-
-    include_directories (${CMAKE_BINARY_DIR}/boost-src)
-    set (CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/boost-src ${CMAKE_PREFIX_PATH})
-endif ()
-
-add_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY)
-add_definitions (-DBOOST_SYSTEM_NO_DEPRECATED)
-add_definitions (-DBOOST_ALL_NO_LIB)
-add_definitions (-DBOOST_NO_RTTI)
-add_definitions (-DBOOST_NO_TYPEID)
-add_definitions (-DBOOST_ASIO_DISABLE_THREADS)
-
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
-include_directories (${Boost_INCLUDE_DIRS})
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
-
-add_executable (callback-manager src/callback_manager.cpp)
-
-target_link_libraries (callback-manager -lsystemd)
-target_link_libraries (callback-manager stdc++fs)
-target_link_libraries (callback-manager ${Boost_LIBRARIES})
-target_link_libraries (callback-manager sdbusplus)
-
-if (NOT YOCTO)
-    add_dependencies (callback-manager sdbusplus-project)
-endif ()
-
-set (SERVICE_FILES ${PROJECT_SOURCE_DIR}/service_files/callback-manager.service)
-
-find_package (PkgConfig REQUIRED)
-pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir)
-
-install (TARGETS callback-manager DESTINATION sbin)
-install (FILES ${SERVICE_FILES} DESTINATION "${SYSTEMD_SYSTEM_UNIT_DIR}")
diff --git a/callback-manager/cmake-format.json b/callback-manager/cmake-format.json
deleted file mode 100644
index 260764f..0000000
--- a/callback-manager/cmake-format.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "enum_char": ".",
-    "line_ending": "unix",
-    "bullet_char": "*",
-    "max_subargs_per_line": 99,
-    "command_case": "lower",
-    "tab_size": 4,
-    "line_width": 80,
-    "separate_fn_name_with_space": true,
-    "dangle_parens": true,
-    "separate_ctrl_name_with_space": true
-}
diff --git a/callback-manager/meson.build b/callback-manager/meson.build
new file mode 100644
index 0000000..cb0fe0a
--- /dev/null
+++ b/callback-manager/meson.build
@@ -0,0 +1,73 @@
+# Compiler flags
+cpp_args = [
+    '-Werror',
+    '-Wall',
+    '-Wextra',
+    '-Wshadow',
+    '-Wnon-virtual-dtor',
+    '-Wold-style-cast',
+    '-Wcast-align',
+    '-Wunused',
+    '-Woverloaded-virtual',
+    '-Wpedantic',
+    '-Wconversion',
+    '-Wmisleading-indentation',
+    '-Wduplicated-cond',
+    '-Wduplicated-branches',
+    '-Wlogical-op',
+    '-Wnull-dereference',
+    '-Wuseless-cast',
+    '-Wdouble-promotion',
+    '-Wformat=2',
+    '-fno-rtti',
+]
+
+# Boost library
+boost_dep = dependency('boost', required: true)
+
+# Definitions
+add_project_arguments(
+    '-DBOOST_ERROR_CODE_HEADER_ONLY',
+    '-DBOOST_SYSTEM_NO_DEPRECATED',
+    '-DBOOST_ALL_NO_LIB',
+    '-DBOOST_NO_RTTI',
+    '-DBOOST_NO_TYPEID',
+    '-DBOOST_ASIO_DISABLE_THREADS',
+    language: 'cpp',
+)
+
+# Include directories
+inc = include_directories('include')
+
+# Executable
+
+
+boost = dependency('boost', version: '1.73.0', required: false)
+sdbusplus = dependency('sdbusplus', required: false)
+
+executable(
+    'callback-manager',
+    'src/callback_manager.cpp',
+    include_directories: inc,
+    cpp_args: cpp_args,
+    dependencies: [boost_dep],
+    link_with: ['systemd', 'i2c', 'sdbusplus', 'stdc++fs', 'gpiodcxx'],
+)
+
+systemd_dep = dependency('systemd', required: true)
+incdir = include_directories('include')
+executable(
+    'callback-manager',
+    'src/callback_manager.cpp',
+    include_directories: incdir,
+    dependencies: [boost, sdbusplus, systemd_dep],
+)
+# Systemd service files
+systemd_system_unit_dir = systemd_dep.get_pkgconfig_variable(
+    'systemdsystemunitdir',
+)
+
+install_data(
+    'service_files/callback-manager.service',
+    install_dir: systemd_system_unit_dir,
+)
diff --git a/hsbp-manager/CMakeLists.txt b/hsbp-manager/CMakeLists.txt
deleted file mode 100644
index 9146d91..0000000
--- a/hsbp-manager/CMakeLists.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
-set (BUILD_SHARED_LIBRARIES OFF)
-include (ExternalProject)
-set (CMAKE_CXX_STANDARD 23)
-set (CMAKE_CXX_STANDARD_REQUIRED ON)
-
-project (hsbp-manager CXX)
-
-set (
-    CMAKE_CXX_FLAGS
-    "${CMAKE_CXX_FLAGS} -lstdc++fs \
-    -Werror \
-    -Wall \
-    -Wextra \
-    -Wshadow \
-    -Wnon-virtual-dtor \
-    -Wold-style-cast \
-    -Wcast-align \
-    -Wunused \
-    -Woverloaded-virtual \
-    -Wpedantic \
-    -Wconversion \
-    -Wmisleading-indentation \
-    -Wduplicated-cond \
-    -Wduplicated-branches \
-    -Wlogical-op \
-    -Wnull-dereference \
-    -Wuseless-cast \
-    -Wdouble-promotion \
-    -Wformat=2 \
-    -fno-rtti"
-)
-
-find_package(Boost REQUIRED)
-
-add_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY)
-add_definitions (-DBOOST_SYSTEM_NO_DEPRECATED)
-add_definitions (-DBOOST_ALL_NO_LIB)
-add_definitions (-DBOOST_NO_RTTI)
-add_definitions (-DBOOST_NO_TYPEID)
-add_definitions (-DBOOST_ASIO_DISABLE_THREADS)
-
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
-
-add_executable (hsbp-manager src/hsbp_manager.cpp)
-
-target_link_libraries (hsbp-manager -lsystemd)
-target_link_libraries (hsbp-manager i2c)
-target_link_libraries (hsbp-manager ${Boost_LIBRARIES})
-target_link_libraries (hsbp-manager sdbusplus)
-target_link_libraries (hsbp-manager stdc++fs)
-target_link_libraries (hsbp-manager gpiodcxx)
-
-
-find_package (PkgConfig REQUIRED)
-pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir)
-pkg_check_modules(SDBUSPLUSPLUS sdbusplus REQUIRED)
-
-set (SERVICE_FILES ${PROJECT_SOURCE_DIR}/service_files/hsbp-manager.service)
-
-install (TARGETS hsbp-manager DESTINATION bin)
-install (FILES ${SERVICE_FILES} DESTINATION "${SYSTEMD_SYSTEM_UNIT_DIR}")
diff --git a/hsbp-manager/cmake-format.json b/hsbp-manager/cmake-format.json
deleted file mode 100644
index 260764f..0000000
--- a/hsbp-manager/cmake-format.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "enum_char": ".",
-    "line_ending": "unix",
-    "bullet_char": "*",
-    "max_subargs_per_line": 99,
-    "command_case": "lower",
-    "tab_size": 4,
-    "line_width": 80,
-    "separate_fn_name_with_space": true,
-    "dangle_parens": true,
-    "separate_ctrl_name_with_space": true
-}
diff --git a/hsbp-manager/meson.build b/hsbp-manager/meson.build
new file mode 100644
index 0000000..6e0ef67
--- /dev/null
+++ b/hsbp-manager/meson.build
@@ -0,0 +1,67 @@
+# Compiler flags
+cpp_args = [
+    '-lstdc++fs',
+    '-Werror',
+    '-Wall',
+    '-Wextra',
+    '-Wshadow',
+    '-Wnon-virtual-dtor',
+    '-Wold-style-cast',
+    '-Wcast-align',
+    '-Wunused',
+    '-Woverloaded-virtual',
+    '-Wpedantic',
+    '-Wconversion',
+    '-Wmisleading-indentation',
+    '-Wduplicated-cond',
+    '-Wduplicated-branches',
+    '-Wlogical-op',
+    '-Wnull-dereference',
+    '-Wuseless-cast',
+    '-Wdouble-promotion',
+    '-Wformat=2',
+    '-fno-rtti',
+]
+
+# Boost library
+#boost_dep = dependency('boost', required : true)
+#i2c_dep = dependency('i2c-tools', required : true)
+
+# Definitions
+add_project_arguments(
+    '-DBOOST_ERROR_CODE_HEADER_ONLY',
+    '-DBOOST_SYSTEM_NO_DEPRECATED',
+    '-DBOOST_ALL_NO_LIB',
+    '-DBOOST_NO_RTTI',
+    '-DBOOST_NO_TYPEID',
+    '-DBOOST_ASIO_DISABLE_THREADS',
+    language: 'cpp',
+)
+
+# Include directories
+inc = include_directories('include')
+
+cpp = meson.get_compiler('cpp')
+boost = dependency('boost', version: '1.86.0', required: false)
+sdbusplus = dependency('sdbusplus', required: true)
+systemd_dep = dependency('systemd', required: true)
+i2c_dep = cpp.find_library('i2c')
+gpiodcxx = dependency('libgpiodcxx', default_options: ['bindings=cxx'])
+
+incdir = include_directories('include')
+
+executable(
+    'hsbp-manager',
+    'src/hsbp_manager.cpp',
+    include_directories: incdir,
+    dependencies: [boost, i2c_dep, sdbusplus, systemd_dep, gpiodcxx],
+)
+# Systemd service files
+systemd_system_unit_dir = systemd_dep.get_pkgconfig_variable(
+    'systemdsystemunitdir',
+)
+
+install_data(
+    'service_files/hsbp-manager.service',
+    install_dir: systemd_system_unit_dir,
+)
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..99c3ca7
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,10 @@
+project(
+    's2600wf-misc',
+    'cpp',
+    version: '1.1.1',
+    meson_version: '>=1.1.1',
+    default_options: ['cpp_std=c++23'],
+)
+
+#Add subproject for hsbp-manager
+subdir('hsbp-manager')