Fix external projects to build dependencies properly
Now that this project links against libipmid, it must be built which
means that all the dependencies must be built as well. This fixes up the
external projects targets to build and install so that this target can
build natively.
Change-Id: I19abc2093c5a8ef364cff626af93bef1af1d01ca
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d1c2d6d..a5521d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,19 +18,23 @@
add_definitions (-DBOOST_NO_RTTI)
add_definitions (-DBOOST_NO_TYPEID)
add_definitions (-DBOOST_ASIO_DISABLE_THREADS)
+add_definitions (-DBOOST_COROUTINES_NO_DEPRECATION_WARNING)
if (NOT YOCTO)
configure_file (CMakeLists.txt.in 3rdparty/CMakeLists.txt)
- execute_process (COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty)
- execute_process (COMMAND ${CMAKE_COMMAND} --build .
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty)
+ execute_process (
+ COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty
+ )
+ execute_process (
+ COMMAND ${CMAKE_COMMAND} --build .
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty
+ )
set (CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/prefix ${CMAKE_PREFIX_PATH})
include_directories (${CMAKE_BINARY_DIR}/prefix/include)
-endif ()
+ link_directories (${CMAKE_BINARY_DIR}/prefix/lib)
-if (NOT YOCTO)
include_directories (${CMAKE_BINARY_DIR}/sdbusplus-src)
link_directories (${CMAKE_BINARY_DIR}/sdbusplus-src/.libs)
include_directories (${CMAKE_BINARY_DIR}/phosphor-logging-src)
@@ -44,10 +48,13 @@
if (YOCTO)
find_package (PkgConfig REQUIRED)
pkg_check_modules (LOGGING phosphor-logging REQUIRED)
- pkg_check_modules (LIBIPMID libipmid REQUIRED)
include_directories (${LOGGING_INCLUDE_DIRS})
link_directories (${LOGGING_LIBRARY_DIRS})
+ pkg_check_modules (LIBIPMID libipmid REQUIRED)
+ include_directories (${LIBIPMID_INCLUDE_DIRS})
+ link_directories (${LIBIPMID_LIBRARY_DIRS})
+
endif ()
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
@@ -61,21 +68,21 @@
add_executable (runSensorTests ${SENSOR_TEST_SRC})
add_test (NAME test_sensorcommands COMMAND runSensorTests)
- target_link_libraries (runSensorTests ${GTEST_BOTH_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT} phosphor_logging sdbusplus
- -lsystemd)
+ target_link_libraries (
+ runSensorTests ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
+ phosphor_logging sdbusplus -lsystemd
+ )
endif ()
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
-add_library (zinteloemcmds
- SHARED src/oemcommands.cpp src/sensorcommands.cpp
- src/storagecommands.cpp)
+add_library (
+ zinteloemcmds SHARED src/oemcommands.cpp src/sensorcommands.cpp
+ src/storagecommands.cpp
+)
set_target_properties (zinteloemcmds PROPERTIES VERSION "0.1.0")
set_target_properties (zinteloemcmds PROPERTIES SOVERSION "0")
-if (YOCTO)
- target_link_libraries (zinteloemcmds ipmid)
-endif ()
+target_link_libraries (zinteloemcmds ipmid)
target_link_libraries (zinteloemcmds sdbusplus)
target_link_libraries (zinteloemcmds phosphor_logging)
diff --git a/CMakeLists.txt.in b/CMakeLists.txt.in
index f7161ac..c0d71b7 100644
--- a/CMakeLists.txt.in
+++ b/CMakeLists.txt.in
@@ -6,16 +6,42 @@
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/prefix/include)
# requires apt install autoconf-archive and autoconf
+
externalproject_add (
- sdbusplus-project PREFIX ${CMAKE_BINARY_DIR}/sdbusplus-project
+ Boost URL
+ https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.gz
+ URL_MD5 b50944c0c13f81ce2c006802a1186f5a SOURCE_DIR
+ "${CMAKE_BINARY_DIR}/boost-src" BINARY_DIR "${CMAKE_BINARY_DIR}/boost-build"
+ STAMP_DIR "${CMAKE_BINARY_DIR}/boost-stamp"
+ CONFIGURE_COMMAND cd ${CMAKE_BINARY_DIR}/boost-src && ./bootstrap.sh
+ --prefix=${CMAKE_BINARY_DIR}/prefix --with-toolset=gcc BUILD_COMMAND ""
+ INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/boost-src && ./b2 --with-coroutine
+ --with-context install
+)
+
+externalproject_add (
+ sdbusplus-project PREFIX ${CMAKE_BINARY_DIR}/sdbusplus-project DEPENDS Boost
GIT_REPOSITORY https://github.com/openbmc/sdbusplus.git GIT_TAG
f0dd3b5a3c6c54b4f38844b573e3f157f8064088 SOURCE_DIR
${CMAKE_BINARY_DIR}/sdbusplus-src BINARY_DIR
- ${CMAKE_BINARY_DIR}/sdbusplus-build CONFIGURE_COMMAND "" BUILD_COMMAND cd
+ ${CMAKE_BINARY_DIR}/sdbusplus-build CONFIGURE_COMMAND cd
${CMAKE_BINARY_DIR}/sdbusplus-src && ./bootstrap.sh clean && ./bootstrap.sh
&& ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
- CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ --enable-transaction && make
- && make install INSTALL_COMMAND "" LOG_DOWNLOAD ON
+ CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ --enable-transaction
+ BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/sdbusplus-src && make INSTALL_COMMAND
+ cd ${CMAKE_BINARY_DIR}/sdbusplus-src && make install LOG_DOWNLOAD ON
+)
+
+externalproject_add (
+ sdeventplus-project PREFIX ${CMAKE_BINARY_DIR}/sdeventplus-project
+ GIT_REPOSITORY https://github.com/openbmc/sdeventplus.git SOURCE_DIR
+ ${CMAKE_BINARY_DIR}/sdeventplus-src BINARY_DIR
+ ${CMAKE_BINARY_DIR}/sdeventplus-build CONFIGURE_COMMAND cd
+ ${CMAKE_BINARY_DIR}/sdeventplus-src && ./bootstrap.sh clean &&
+ ./bootstrap.sh && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
+ CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ BUILD_COMMAND cd
+ ${CMAKE_BINARY_DIR}/sdeventplus-src && make INSTALL_COMMAND cd
+ ${CMAKE_BINARY_DIR}/sdeventplus-src && make install LOG_DOWNLOAD ON
)
externalproject_add (
@@ -24,18 +50,19 @@
https://github.com/openbmc/phosphor-dbus-interfaces GIT_TAG
05207d69427cc5f016f08dde801b702d1461cfec SOURCE_DIR
${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src BINARY_DIR
- ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-build CONFIGURE_COMMAND ""
- BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src && echo
- "#!/bin/bash" > build.sh && echo
- "export PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}"
- >> build.sh && echo "export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH}"
- >> build.sh && echo
- "export PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig" >>
- build.sh && echo "./bootstrap.sh " >> build.sh && echo
- "./configure --prefix=${CMAKE_BINARY_DIR}/prefix CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ "
- >> build.sh && echo "make verbose=1" >> build.sh && echo "make install " >>
- build.sh && chmod 777 build.sh && ./build.sh INSTALL_COMMAND "" LOG_DOWNLOAD
- ON
+ ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-build CONFIGURE_COMMAND cd
+ ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src && export
+ PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
+ && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
+ PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && ./bootstrap.sh
+ && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
+ CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ BUILD_COMMAND cd
+ ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src && export
+ PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
+ && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
+ PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && make verbose=1
+ INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src && make
+ install LOG_DOWNLOAD ON
)
externalproject_add (
@@ -54,20 +81,21 @@
https://github.com/openbmc/phosphor-logging GIT_TAG
8024d1dc7dfff6360f3e1bdbce145652eb5698be SOURCE_DIR
${CMAKE_BINARY_DIR}/phosphor-logging-src BINARY_DIR
- ${CMAKE_BINARY_DIR}/phosphor-logging-build CONFIGURE_COMMAND ""
- BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-logging-src && echo
- "#!/bin/bash" > build.sh && echo
- "export PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}"
- >> build.sh && echo "export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH}"
- >> build.sh && echo
- "export PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}"
- >> build.sh && echo "./bootstrap.sh clean" >> build.sh && echo
- "./bootstrap.sh" >> build.sh && echo
- "./configure --prefix=${CMAKE_BINARY_DIR}/prefix CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ \
- YAML_DIR=${CMAKE_BINARY_DIR}/prefix/share/phosphor-dbus-yaml/yaml --enable-metadata-processing"
- >> build.sh && echo "make verbose=1" >> build.sh && echo "make install " >>
- build.sh && chmod 777 build.sh && ./build.sh INSTALL_COMMAND "" LOG_DOWNLOAD
- ON
+ ${CMAKE_BINARY_DIR}/phosphor-logging-build CONFIGURE_COMMAND cd
+ ${CMAKE_BINARY_DIR}/phosphor-logging-src && export
+ PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
+ && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
+ PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && ./bootstrap.sh
+ && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
+ CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/
+ YAML_DIR=${CMAKE_BINARY_DIR}/prefix/share/phosphor-dbus-yaml/yaml
+ --enable-metadata-processing BUILD_COMMAND cd
+ ${CMAKE_BINARY_DIR}/phosphor-logging-src && export
+ PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
+ && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
+ PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && make verbose=1
+ INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-logging-src && make install
+ LOG_DOWNLOAD ON
)
externalproject_add (
@@ -81,25 +109,43 @@
)
externalproject_add (
- host-ipmid PREFIX ${CMAKE_BINARY_DIR}/phosphor-host-ipmid DEPENDS
- sdbusplus-project dbus-interfaces nlohmann-json GIT_REPOSITORY
- https://github.com/openbmc/phosphor-host-ipmid SOURCE_DIR
- ${CMAKE_BINARY_DIR}/phosphor-ipmi-host BINARY_DIR
- ${CMAKE_BINARY_DIR}/phosphor-host-ipmid-build CONFIGURE_COMMAND ""
- BUILD_COMMAND "" INSTALL_COMMAND mkdir -p
- "${CMAKE_BINARY_DIR}/prefix/include/ipmid" && cp
- ${CMAKE_BINARY_DIR}/phosphor-ipmi-host/include/ipmid/api.h
- ${CMAKE_BINARY_DIR}/prefix/include/ipmid LOG_DOWNLOAD ON
+ phosphor-objmgr PREFIX ${CMAKE_BINARY_DIR}/phosphor-objmgr DEPENDS Boost
+ sdbusplus-project phosphor-logging GIT_REPOSITORY
+ https://github.com/openbmc/phosphor-objmgr SOURCE_DIR
+ ${CMAKE_BINARY_DIR}/phosphor-objmgr-src BINARY_DIR
+ ${CMAKE_BINARY_DIR}/phosphor-objmgr-build CONFIGURE_COMMAND cd
+ ${CMAKE_BINARY_DIR}/phosphor-objmgr-src && export
+ PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && ./bootstrap.sh
+ && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
+ CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ BUILD_COMMAND cd
+ ${CMAKE_BINARY_DIR}/phosphor-objmgr-src && export
+ PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && make verbose=1
+ INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-objmgr-src && make install
+ LOG_DOWNLOAD ON
)
externalproject_add (
- Boost URL
- https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz
- URL_MD5 d275cd85b00022313c171f602db59fc5 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
+ host-ipmid PREFIX ${CMAKE_BINARY_DIR}/phosphor-host-ipmid DEPENDS
+ sdeventplus-project sdbusplus-project phosphor-objmgr dbus-interfaces
+ nlohmann-json Boost GIT_REPOSITORY
+ https://github.com/openbmc/phosphor-host-ipmid SOURCE_DIR
+ ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-src BINARY_DIR
+ ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-build CONFIGURE_COMMAND cd
+ ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-src && export
+ PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
+ && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
+ PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && ./bootstrap.sh
+ && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
+ CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/
+ CXXFLAGS=-Wno-error=unused-result LDFLAGS=-L${CMAKE_BINARY_DIR}/prefix/lib/
+ BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-src && export
+ PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
+ && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
+ PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && make verbose=1
+ INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-src && make
+ install && mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/phosphor-ipmi-host"
+ && cp sensorhandler.hpp selutility.hpp
+ "${CMAKE_BINARY_DIR}/prefix/include/phosphor-ipmi-host/" LOG_DOWNLOAD ON
)
externalproject_add (
@@ -110,3 +156,11 @@
"${CMAKE_BINARY_DIR}/googletest-build" CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/prefix
)
+
+externalproject_add (
+ tinyxml2 GIT_REPOSITORY "https://github.com/leethomason/tinyxml2.git"
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/tinyxml2-build
+ SOURCE_DIR "${CMAKE_BINARY_DIR}/tinyxml2-src" BINARY_DIR
+ "${CMAKE_BINARY_DIR}/tinyxml2-build" CMAKE_ARGS
+ -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/prefix
+)