diff options
author | James Feist <james.feist@linux.intel.com> | 2019-10-18 23:57:16 +0300 |
---|---|---|
committer | Ed Tanous <ed.tanous@intel.com> | 2019-10-21 23:46:35 +0300 |
commit | 41d1d1833f476766f88cfb624e66eef7906bdf8c (patch) | |
tree | 69a4356198913714d968aee2df6d391c5854346d /CMakeLists.txt | |
parent | 8251ffee18bc18b7cdda281b3ec137023aa79303 (diff) | |
download | bmcweb-41d1d1833f476766f88cfb624e66eef7906bdf8c.tar.xz |
rerun cmake-format
This file has gotten pretty un-formatted.
Change-Id: I227bf5a7cf4fa38f28d7147fc1b210d5a22ed2a2
Signed-off-by: James Feist <james.feist@linux.intel.com>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 271 |
1 files changed, 155 insertions, 116 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a697042bf..40b570633c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,55 +10,97 @@ option (BUILD_STATIC_LIBS "Built static libraries" ON) option (YOCTO_DEPENDENCIES "Use YOCTO dependencies system" OFF) -option (BMCWEB_ENABLE_KVM "Enable the KVM host video WebSocket. Path is - '/kvm/0'. Video is from the BMC's '/dev/video' device." ON) -option (BMCWEB_ENABLE_VM_WEBSOCKET "Enable the Virtual Media WebSocket. Path is - '/vm/0/0'to open the websocket. See - https://github.com/openbmc/jsnbd/blob/master/README." ON) -option (BMCWEB_ENABLE_DBUS_REST "Enable Phosphor REST (D-Bus) APIs. Paths - directly map Phosphor D-Bus object paths, for example, - '/xyz/openbmc_project/logging/entry/enumerate'. See - https://github.com/openbmc/docs/blob/master/rest-api.md." ON) -option (BMCWEB_ENABLE_REDFISH "Enable Redfish APIs. Paths are under - '/redfish/v1/'. See - https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish." - ON) -option (BMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET "Enable host serial console - WebSocket. Path is '/console0'. See - https://github.com/openbmc/docs/blob/master/console.md." ON) -option (BMCWEB_ENABLE_STATIC_HOSTING "Enable serving files from the - '/usr/share/www' directory as paths under '/'." ON) -option (BMCWEB_ENABLE_REDFISH_BMC_JOURNAL "Enable BMC journal access through - Redfish. Paths are under - '/redfish/v1/Managers/bmc/LogServices/Journal'." OFF) -option (BMCWEB_ENABLE_REDFISH_RAW_PECI "Enable PECI transactions through - Redfish. Paths are under '/redfish/v1/Systems/system/LogServices/CpuLog/ - Actions/Oem/CpuLog.SendRawPeci'." OFF) -option (BMCWEB_ENABLE_REDFISH_CPU_LOG "Enable CPU log service transactions - through Redfish. Paths are under - '/redfish/v1/Systems/system/LogServices/Crashdump'." OFF) -option (BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES "Enable DBUS log service - transactions through Redfish. Paths are under - '/redfish/v1/Systems/system/LogServices/EventLog/Entries'." OFF) +option ( + BMCWEB_ENABLE_KVM + "Enable the KVM host video WebSocket. Path is '/kvm/0'. Video is from the + BMC's '/dev/video' device." + ON +) +option ( + BMCWEB_ENABLE_VM_WEBSOCKET + "Enable the Virtual Media WebSocket. Path is '/vm/0/0'to open the websocket. + See https://github.com/openbmc/jsnbd/blob/master/README." + ON +) +option ( + BMCWEB_ENABLE_DBUS_REST + "Enable Phosphor REST (D-Bus) APIs. Paths directly map Phosphor D-Bus + object paths, for example, '/xyz/openbmc_project/logging/entry/enumerate'. + See https://github.com/openbmc/docs/blob/master/rest-api.md." + ON +) +option ( + BMCWEB_ENABLE_REDFISH + "Enable Redfish APIs. Paths are under '/redfish/v1/'. See + https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish." + ON +) +option ( + BMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET + "Enable host serial console WebSocket. Path is '/console0'. See + https://github.com/openbmc/docs/blob/master/console.md." + ON +) +option ( + BMCWEB_ENABLE_STATIC_HOSTING + "Enable serving files from the '/usr/share/www' directory as paths under + '/'." + ON +) +option ( + BMCWEB_ENABLE_REDFISH_BMC_JOURNAL + "Enable BMC journal access through Redfish. Paths are under + '/redfish/v1/Managers/bmc/LogServices/Journal'." + OFF +) +option ( + BMCWEB_ENABLE_REDFISH_RAW_PECI + "Enable PECI transactions through Redfish. Paths are under + '/redfish/v1/Systems/system/LogServices/CpuLog/Actions/Oem/CpuLog.SendRawPeci'." + OFF +) +option ( + BMCWEB_ENABLE_REDFISH_CPU_LOG + "Enable CPU log service transactions through Redfish. Paths are under + '/redfish/v1/Systems/system/LogServices/Crashdump'." + OFF +) +option ( + BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES + "Enable DBUS log service transactions through Redfish. Paths are under + '/redfish/v1/Systems/system/LogServices/EventLog/Entries'." + OFF +) # Insecure options. Every option that starts with a BMCWEB_INSECURE flag should # not be enabled by default for any platform, unless the author fully # comprehends the implications of doing so. In general, enabling these options # will cause security problems of varying degrees -option (BMCWEB_INSECURE_DISABLE_CSRF_PREVENTION "Disable CSRF prevention checks. - Should be set to OFF for production systems." OFF) +option ( + BMCWEB_INSECURE_DISABLE_CSRF_PREVENTION + "Disable CSRF prevention checks. Should be set to OFF for production + systems." + OFF +) -option (BMCWEB_INSECURE_DISABLE_SSL "Disable SSL ports. Should be set to OFF for - production systems." OFF) +option (BMCWEB_INSECURE_DISABLE_SSL + "Disable SSL ports. Should be set to OFF for production systems." OFF) -option (BMCWEB_INSECURE_DISABLE_AUTHENTICATION "Disable authentication on all - ports. Should be set to OFF for production systems" OFF) +option ( + BMCWEB_INSECURE_DISABLE_AUTHENTICATION + "Disable authentication on all ports. Should be set to OFF for production + systems" + OFF +) option (BMCWEB_INSECURE_DISABLE_XSS_PREVENTION "Disable XSS preventions" OFF) -option (BMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE "Enable TFTP based - firmware update transactions through Redfish - UpdateService.SimpleUpdate." OFF) +option ( + BMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE + "Enable TFTP based firmware update transactions through Redfish + UpdateService.SimpleUpdate." + OFF +) include (CTest) @@ -73,7 +115,9 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ -fno-rtti \ ") -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ +set ( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} \ -Wall \ -Wextra \ -Wnon-virtual-dtor \ @@ -88,12 +132,15 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ -Wdouble-promotion \ -Wformat=2 \ -Wno-unused-parameter \ -") +" +) # only set -Werror if we're on a compiler that we know passes if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0) + set ( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} \ -Werror \ -Wduplicated-cond \ -Wduplicated-branches \ @@ -102,8 +149,9 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") -Wdouble-promotion \ -Wformat=2 \ -Wno-unused-parameter \ - ") - endif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0) + " + ) + endif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0) endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti") @@ -112,18 +160,18 @@ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti") option (BMCWEB_BUILD_UT "Enable Unit test" OFF) # security flags -set (SECURITY_FLAGS "\ - -fstack-protector-strong \ +set ( + SECURITY_FLAGS + "-fstack-protector-strong \ -fPIE \ -fPIC \ -D_FORTIFY_SOURCE=2 \ -Wformat \ - -Wformat-security") -set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${SECURITY_FLAGS}") -set ( - CMAKE_CXX_FLAGS_RELWITHDEBINFO - "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${SECURITY_FLAGS}" + -Wformat-security" ) +set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${SECURITY_FLAGS}") +set (CMAKE_CXX_FLAGS_RELWITHDEBINFO + "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${SECURITY_FLAGS}") set (CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${SECURITY_FLAGS}") # Enable link time optimization This is a temporary workaround because @@ -133,32 +181,29 @@ set (CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${SECURITY_FLAGS}") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") if (NOT CMAKE_BUILD_TYPE MATCHES Debug) string (REGEX REPLACE "ar$" "gcc-ar" CMAKE_AR ${CMAKE_AR}) - string ( - REGEX - REPLACE "ranlib$" "gcc-ranlib" CMAKE_RANLIB ${CMAKE_RANLIB} - ) + string (REGEX + REPLACE "ranlib$" "gcc-ranlib" CMAKE_RANLIB ${CMAKE_RANLIB}) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto -fno-fat-lto-objects") # Reduce the binary size by removing unnecessary dynamic symbol table # entries - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ + set ( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} \ -fvisibility=hidden \ -fvisibility-inlines-hidden \ - -Wl,--exclude-libs,ALL") + -Wl,--exclude-libs,ALL" + ) endif (NOT CMAKE_BUILD_TYPE MATCHES Debug) endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") if (NOT ${YOCTO_DEPENDENCIES}) # Download and unpack googletest at configure # time 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}) endif () @@ -171,10 +216,10 @@ add_definitions (-DBOOST_ASIO_DISABLE_THREADS) add_definitions (-DBOOST_BEAST_USE_STD_STRING_VIEW) add_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY) add_definitions (-DBOOST_SYSTEM_NO_DEPRECATED) -message(BOOST_VERSION = ${Boost_VERSION}) +message (BOOST_VERSION = ${Boost_VERSION}) if ("${Boost_VERSION}" STREQUAL "107100") add_definitions (-DBOOST_ASIO_NO_DEPRECATED) -endif() +endif () add_definitions (-DBOOST_ALL_NO_LIB) add_definitions (-DBOOST_NO_RTTI) add_definitions (-DBOOST_NO_TYPEID) @@ -218,11 +263,8 @@ endif () add_definitions ("-Wno-attributes") # Copy pam-webserver to etc/pam.d -install ( - FILES ${CMAKE_CURRENT_SOURCE_DIR}/pam-webserver - DESTINATION /etc/pam.d/ - RENAME webserver -) +install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/pam-webserver DESTINATION /etc/pam.d/ + RENAME webserver) # tinyxml2 find_package (tinyxml2 REQUIRED) @@ -235,35 +277,30 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/redfish-core/include) file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/include/bmcweb) include_directories (${CMAKE_BINARY_DIR}/include) -set ( - SRC_FILES redfish-core/src/error_messages.cpp - redfish-core/src/utils/json_utils.cpp ${GENERATED_SRC_FILES} -) +set (SRC_FILES redfish-core/src/error_messages.cpp + redfish-core/src/utils/json_utils.cpp ${GENERATED_SRC_FILES}) file (COPY src/test_resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) # Unit Tests if (${BMCWEB_BUILD_UT}) - set ( - UT_FILES src/crow_test.cpp src/gtest_main.cpp - src/token_authorization_middleware_test.cpp - src/security_headers_middleware_test.cpp src/webassets_test.cpp - src/crow_getroutes_test.cpp src/ast_jpeg_decoder_test.cpp - src/kvm_websocket_test.cpp src/msan_test.cpp - src/ast_video_puller_test.cpp src/openbmc_jtag_rest_test.cpp - redfish-core/ut/privileges_test.cpp - ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp - ) # big list of naughty strings - add_custom_command ( - OUTPUT ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp - COMMAND - xxd -i ${CMAKE_CURRENT_SOURCE_DIR}/src/test_resources/blns - ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp - ) - - set_source_files_properties ( - ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp PROPERTIES GENERATED TRUE - ) + set (UT_FILES src/crow_test.cpp src/gtest_main.cpp + src/token_authorization_middleware_test.cpp + src/security_headers_middleware_test.cpp src/webassets_test.cpp + src/crow_getroutes_test.cpp src/ast_jpeg_decoder_test.cpp + src/kvm_websocket_test.cpp src/msan_test.cpp + src/ast_video_puller_test.cpp src/openbmc_jtag_rest_test.cpp + redfish-core/ut/privileges_test.cpp + ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp) # big list of naughty + # strings + add_custom_command (OUTPUT ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp + COMMAND + xxd -i + ${CMAKE_CURRENT_SOURCE_DIR}/src/test_resources/blns + ${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp) + + set_source_files_properties (${CMAKE_BINARY_DIR}/include/bmcweb/blns.hpp + PROPERTIES GENERATED TRUE) enable_testing () add_executable (webtest ${SRC_FILES} ${UT_FILES}) @@ -300,33 +337,35 @@ target_link_libraries (bmcweb tinyxml2) install (TARGETS bmcweb DESTINATION bin) target_compile_definitions ( - bmcweb PRIVATE - $<$<BOOL:${BMCWEB_ENABLE_KVM}>: -DBMCWEB_ENABLE_KVM> + bmcweb PRIVATE $<$<BOOL:${BMCWEB_ENABLE_KVM}>: -DBMCWEB_ENABLE_KVM> $<$<BOOL:${BMCWEB_ENABLE_VM_WEBSOCKET}>: -DBMCWEB_ENABLE_VM_WEBSOCKET> $<$<BOOL:${BMCWEB_ENABLE_DBUS_REST}>: -DBMCWEB_ENABLE_DBUS_REST> $<$<BOOL:${BMCWEB_ENABLE_REDFISH}>: -DBMCWEB_ENABLE_REDFISH> $<$<BOOL:${BMCWEB_ENABLE_STATIC_HOSTING}>: -DBMCWEB_ENABLE_STATIC_HOSTING> - $<$<BOOL:${BMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET}>: -DBMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET> - $<$<BOOL:${BMCWEB_INSECURE_DISABLE_CSRF_PREVENTION}>: -DBMCWEB_INSECURE_DISABLE_CSRF_PREVENTION> + $<$<BOOL:${BMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET}>: + -DBMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET> + $<$<BOOL:${BMCWEB_INSECURE_DISABLE_CSRF_PREVENTION}>: + -DBMCWEB_INSECURE_DISABLE_CSRF_PREVENTION> $<$<BOOL:${BMCWEB_INSECURE_DISABLE_SSL}>: -DBMCWEB_INSECURE_DISABLE_SSL> - $<$<BOOL:${BMCWEB_INSECURE_DISABLE_XSS_PREVENTION}>: -DBMCWEB_INSECURE_DISABLE_XSS_PREVENTION> - $<$<BOOL:${BMCWEB_ENABLE_REDFISH_RAW_PECI}>: -DBMCWEB_ENABLE_REDFISH_RAW_PECI> - $<$<BOOL:${BMCWEB_ENABLE_REDFISH_CPU_LOG}>: -DBMCWEB_ENABLE_REDFISH_CPU_LOG> - $<$<BOOL:${BMCWEB_ENABLE_REDFISH_BMC_JOURNAL}>: -DBMCWEB_ENABLE_REDFISH_BMC_JOURNAL> - $<$<BOOL:${BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES}>: -DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES> - $<$<BOOL:${BMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE}>: -DBMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE> - + $<$<BOOL:${BMCWEB_INSECURE_DISABLE_XSS_PREVENTION}>: + -DBMCWEB_INSECURE_DISABLE_XSS_PREVENTION> + $<$<BOOL:${BMCWEB_ENABLE_REDFISH_RAW_PECI}>: + -DBMCWEB_ENABLE_REDFISH_RAW_PECI> + $<$<BOOL:${BMCWEB_ENABLE_REDFISH_CPU_LOG}>: + -DBMCWEB_ENABLE_REDFISH_CPU_LOG> + $<$<BOOL:${BMCWEB_ENABLE_REDFISH_BMC_JOURNAL}>: + -DBMCWEB_ENABLE_REDFISH_BMC_JOURNAL> + $<$<BOOL:${BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES}>: + -DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES> + $<$<BOOL:${BMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE}>: + -DBMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE> ) # configure and install systemd unit files configure_file (bmcweb.socket bmcweb.socket COPYONLY) configure_file (bmcweb.service.in bmcweb.service) pkg_get_variable (SYSTEMD_SYSTEMUNITDIR systemd systemdsystemunitdir) -install ( - FILES ${PROJECT_BINARY_DIR}/bmcweb.socket - DESTINATION ${SYSTEMD_SYSTEMUNITDIR} -) -install ( - FILES ${PROJECT_BINARY_DIR}/bmcweb.service - DESTINATION ${SYSTEMD_SYSTEMUNITDIR} -) +install (FILES ${PROJECT_BINARY_DIR}/bmcweb.socket DESTINATION + ${SYSTEMD_SYSTEMUNITDIR}) +install (FILES ${PROJECT_BINARY_DIR}/bmcweb.service DESTINATION + ${SYSTEMD_SYSTEMUNITDIR}) |