blob: c0d71b723833750bced26601062cf6bc37891d50 [file] [log] [blame]
Jia, Chunhuia835eaa2018-09-05 09:00:41 +08001cmake_minimum_required (VERSION 3.5)
2
3include (ExternalProject)
4
5file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/prefix)
6file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/prefix/include)
7
8# requires apt install autoconf-archive and autoconf
Vernon Mauery8b69fae2019-03-20 13:43:11 -07009
Jia, Chunhuia835eaa2018-09-05 09:00:41 +080010externalproject_add (
Vernon Mauery8b69fae2019-03-20 13:43:11 -070011 Boost URL
12 https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.gz
13 URL_MD5 b50944c0c13f81ce2c006802a1186f5a SOURCE_DIR
14 "${CMAKE_BINARY_DIR}/boost-src" BINARY_DIR "${CMAKE_BINARY_DIR}/boost-build"
15 STAMP_DIR "${CMAKE_BINARY_DIR}/boost-stamp"
16 CONFIGURE_COMMAND cd ${CMAKE_BINARY_DIR}/boost-src && ./bootstrap.sh
17 --prefix=${CMAKE_BINARY_DIR}/prefix --with-toolset=gcc BUILD_COMMAND ""
18 INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/boost-src && ./b2 --with-coroutine
19 --with-context install
20)
21
22externalproject_add (
23 sdbusplus-project PREFIX ${CMAKE_BINARY_DIR}/sdbusplus-project DEPENDS Boost
Jason M. Bills3f7c5e42018-10-03 14:00:41 -070024 GIT_REPOSITORY https://github.com/openbmc/sdbusplus.git GIT_TAG
James Feist91244a62019-02-19 15:04:54 -080025 f0dd3b5a3c6c54b4f38844b573e3f157f8064088 SOURCE_DIR
Jason M. Bills3f7c5e42018-10-03 14:00:41 -070026 ${CMAKE_BINARY_DIR}/sdbusplus-src BINARY_DIR
Vernon Mauery8b69fae2019-03-20 13:43:11 -070027 ${CMAKE_BINARY_DIR}/sdbusplus-build CONFIGURE_COMMAND cd
Jason M. Bills3f7c5e42018-10-03 14:00:41 -070028 ${CMAKE_BINARY_DIR}/sdbusplus-src && ./bootstrap.sh clean && ./bootstrap.sh
29 && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
Vernon Mauery8b69fae2019-03-20 13:43:11 -070030 CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ --enable-transaction
31 BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/sdbusplus-src && make INSTALL_COMMAND
32 cd ${CMAKE_BINARY_DIR}/sdbusplus-src && make install LOG_DOWNLOAD ON
33)
34
35externalproject_add (
36 sdeventplus-project PREFIX ${CMAKE_BINARY_DIR}/sdeventplus-project
37 GIT_REPOSITORY https://github.com/openbmc/sdeventplus.git SOURCE_DIR
38 ${CMAKE_BINARY_DIR}/sdeventplus-src BINARY_DIR
39 ${CMAKE_BINARY_DIR}/sdeventplus-build CONFIGURE_COMMAND cd
40 ${CMAKE_BINARY_DIR}/sdeventplus-src && ./bootstrap.sh clean &&
41 ./bootstrap.sh && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
42 CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ BUILD_COMMAND cd
43 ${CMAKE_BINARY_DIR}/sdeventplus-src && make INSTALL_COMMAND cd
44 ${CMAKE_BINARY_DIR}/sdeventplus-src && make install LOG_DOWNLOAD ON
Jia, Chunhuia835eaa2018-09-05 09:00:41 +080045)
46
47externalproject_add (
Jason M. Bills3f7c5e42018-10-03 14:00:41 -070048 dbus-interfaces PREFIX ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces DEPENDS
49 sdbusplus-project GIT_REPOSITORY
50 https://github.com/openbmc/phosphor-dbus-interfaces GIT_TAG
James Feist91244a62019-02-19 15:04:54 -080051 05207d69427cc5f016f08dde801b702d1461cfec SOURCE_DIR
Jason M. Bills3f7c5e42018-10-03 14:00:41 -070052 ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src BINARY_DIR
Vernon Mauery8b69fae2019-03-20 13:43:11 -070053 ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-build CONFIGURE_COMMAND cd
54 ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src && export
55 PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
56 && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
57 PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && ./bootstrap.sh
58 && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
59 CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ BUILD_COMMAND cd
60 ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src && export
61 PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
62 && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
63 PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && make verbose=1
64 INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-dbus-interfaces-src && make
65 install LOG_DOWNLOAD ON
Jia, Chunhuia835eaa2018-09-05 09:00:41 +080066)
67
68externalproject_add (
Jason M. Bills3f7c5e42018-10-03 14:00:41 -070069 cereal GIT_REPOSITORY https://github.com/USCiLab/cereal GIT_TAG
70 51cbda5f30e56c801c07fe3d3aba5d7fb9e6cca4 SOURCE_DIR
71 "${CMAKE_BINARY_DIR}/cereal-src" BINARY_DIR
72 "${CMAKE_BINARY_DIR}/cereal-build" CONFIGURE_COMMAND "" BUILD_COMMAND ""
73 INSTALL_COMMAND mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/cereal" && cp
74 -r "${CMAKE_BINARY_DIR}/cereal-src/include/cereal"
75 "${CMAKE_BINARY_DIR}/prefix/include"
Jia, Chunhuia835eaa2018-09-05 09:00:41 +080076)
77
78externalproject_add (
Jason M. Bills3f7c5e42018-10-03 14:00:41 -070079 phosphor-logging PREFIX ${CMAKE_BINARY_DIR}/phosphor-logging DEPENDS cereal
80 sdbusplus-project dbus-interfaces GIT_REPOSITORY
81 https://github.com/openbmc/phosphor-logging GIT_TAG
James Feist91244a62019-02-19 15:04:54 -080082 8024d1dc7dfff6360f3e1bdbce145652eb5698be SOURCE_DIR
Jason M. Bills3f7c5e42018-10-03 14:00:41 -070083 ${CMAKE_BINARY_DIR}/phosphor-logging-src BINARY_DIR
Vernon Mauery8b69fae2019-03-20 13:43:11 -070084 ${CMAKE_BINARY_DIR}/phosphor-logging-build CONFIGURE_COMMAND cd
85 ${CMAKE_BINARY_DIR}/phosphor-logging-src && export
86 PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
87 && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
88 PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && ./bootstrap.sh
89 && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
90 CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/
91 YAML_DIR=${CMAKE_BINARY_DIR}/prefix/share/phosphor-dbus-yaml/yaml
92 --enable-metadata-processing BUILD_COMMAND cd
93 ${CMAKE_BINARY_DIR}/phosphor-logging-src && export
94 PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
95 && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
96 PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && make verbose=1
97 INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-logging-src && make install
98 LOG_DOWNLOAD ON
Jia, Chunhuia835eaa2018-09-05 09:00:41 +080099)
100
101externalproject_add (
Jason M. Bills3f7c5e42018-10-03 14:00:41 -0700102 nlohmann-json GIT_REPOSITORY "https://github.com/nlohmann/json.git" GIT_TAG
103 d2dd27dc3b8472dbaa7d66f83619b3ebcd9185fe SOURCE_DIR
104 "${CMAKE_BINARY_DIR}/nlohmann-json-src" BINARY_DIR
105 "${CMAKE_BINARY_DIR}/nlohmann-json-build" CONFIGURE_COMMAND "" BUILD_COMMAND
106 "" INSTALL_COMMAND mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/nlohmann" &&
107 cp -r "${CMAKE_BINARY_DIR}/nlohmann-json-src/include/nlohmann"
108 "${CMAKE_BINARY_DIR}/prefix/include"
Jia, Chunhuia835eaa2018-09-05 09:00:41 +0800109)
110
Jason M. Bills3f7c5e42018-10-03 14:00:41 -0700111externalproject_add (
Vernon Mauery8b69fae2019-03-20 13:43:11 -0700112 phosphor-objmgr PREFIX ${CMAKE_BINARY_DIR}/phosphor-objmgr DEPENDS Boost
113 sdbusplus-project phosphor-logging GIT_REPOSITORY
114 https://github.com/openbmc/phosphor-objmgr SOURCE_DIR
115 ${CMAKE_BINARY_DIR}/phosphor-objmgr-src BINARY_DIR
116 ${CMAKE_BINARY_DIR}/phosphor-objmgr-build CONFIGURE_COMMAND cd
117 ${CMAKE_BINARY_DIR}/phosphor-objmgr-src && export
118 PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && ./bootstrap.sh
119 && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
120 CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/ BUILD_COMMAND cd
121 ${CMAKE_BINARY_DIR}/phosphor-objmgr-src && export
122 PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && make verbose=1
123 INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-objmgr-src && make install
124 LOG_DOWNLOAD ON
Jason M. Bills3f7c5e42018-10-03 14:00:41 -0700125)
Jia, Chunhuia835eaa2018-09-05 09:00:41 +0800126
Jason M. Bills3f7c5e42018-10-03 14:00:41 -0700127externalproject_add (
Vernon Mauery8b69fae2019-03-20 13:43:11 -0700128 host-ipmid PREFIX ${CMAKE_BINARY_DIR}/phosphor-host-ipmid DEPENDS
129 sdeventplus-project sdbusplus-project phosphor-objmgr dbus-interfaces
130 nlohmann-json Boost GIT_REPOSITORY
131 https://github.com/openbmc/phosphor-host-ipmid SOURCE_DIR
132 ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-src BINARY_DIR
133 ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-build CONFIGURE_COMMAND cd
134 ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-src && export
135 PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
136 && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
137 PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && ./bootstrap.sh
138 && ./configure --prefix=${CMAKE_BINARY_DIR}/prefix
139 CPPFLAGS=-I${CMAKE_BINARY_DIR}/prefix/include/
140 CXXFLAGS=-Wno-error=unused-result LDFLAGS=-L${CMAKE_BINARY_DIR}/prefix/lib/
141 BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-src && export
142 PYTHONPATH=${CMAKE_BINARY_DIR}/prefix/lib/python2.7/site-packages:$ENV{PYTHONPATH}
143 && export PATH=${CMAKE_BINARY_DIR}/prefix/bin:$ENV{PATH} && export
144 PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/prefix/lib/pkgconfig && make verbose=1
145 INSTALL_COMMAND cd ${CMAKE_BINARY_DIR}/phosphor-ipmi-host-src && make
146 install && mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/phosphor-ipmi-host"
147 && cp sensorhandler.hpp selutility.hpp
148 "${CMAKE_BINARY_DIR}/prefix/include/phosphor-ipmi-host/" LOG_DOWNLOAD ON
Jason M. Bills3f7c5e42018-10-03 14:00:41 -0700149)
James Feistb9683922019-01-02 15:04:45 -0800150
151externalproject_add (
152 gtest GIT_REPOSITORY "https://github.com/google/googletest.git" GIT_TAG
153 dfa853b63d17c787914b663b50c2095a0c5b706e CMAKE_ARGS
154 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/googletest-build SOURCE_DIR
155 "${CMAKE_BINARY_DIR}/googletest-src" BINARY_DIR
156 "${CMAKE_BINARY_DIR}/googletest-build" CMAKE_ARGS
157 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/prefix
158)
Vernon Mauery8b69fae2019-03-20 13:43:11 -0700159
160externalproject_add (
161 tinyxml2 GIT_REPOSITORY "https://github.com/leethomason/tinyxml2.git"
162 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/tinyxml2-build
163 SOURCE_DIR "${CMAKE_BINARY_DIR}/tinyxml2-src" BINARY_DIR
164 "${CMAKE_BINARY_DIR}/tinyxml2-build" CMAKE_ARGS
165 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/prefix
166)