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')