73 строки
1.8 KiB
CMake
73 строки
1.8 KiB
CMake
cmake_minimum_required (VERSION 3.1)
|
|
|
|
project (bond)
|
|
cmake_policy (SET CMP0022 NEW)
|
|
|
|
set (CMAKE_MODULE_PATH
|
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake
|
|
${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/cmake-modules)
|
|
|
|
# Initialize before ThirdParty
|
|
set (BOND_ENABLE_GRPC
|
|
"TRUE"
|
|
CACHE BOOL "If FALSE, then do not build gRPC integration")
|
|
|
|
# We need to include third-party CMake modules before we configure our own
|
|
# settings so that we don't apply our settings to third-party code.
|
|
add_subdirectory (thirdparty)
|
|
|
|
enable_testing()
|
|
|
|
set (BOND_IDL ${CMAKE_CURRENT_SOURCE_DIR}/idl)
|
|
set (BOND_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/cpp/inc)
|
|
set (BOND_PYTHON_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/python/inc)
|
|
set (BOND_GENERATED ${CMAKE_CURRENT_SOURCE_DIR}/cpp/generated)
|
|
set (BOND_COMPAT_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test/compat)
|
|
|
|
include (Config)
|
|
include (Bond)
|
|
include (NoDebug)
|
|
include (Compiler)
|
|
include (PythonTest)
|
|
|
|
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -C ${CMAKE_CFG_INTDIR} --output-on-failure)
|
|
|
|
if (NOT BOND_GBC_PATH)
|
|
add_subfolder (compiler "compiler")
|
|
if (NOT BOND_SKIP_GBC_TESTS)
|
|
add_dependencies (check gbc-tests)
|
|
endif()
|
|
endif()
|
|
|
|
add_subdirectory (cpp)
|
|
add_subfolder (doc "doc")
|
|
add_python_subdirectory (python)
|
|
add_subdirectory (examples)
|
|
|
|
|
|
install (DIRECTORY
|
|
cpp/inc/bond
|
|
cpp/generated/bond
|
|
python/inc/bond
|
|
thirdparty/rapidjson/include/rapidjson
|
|
DESTINATION include
|
|
PATTERN *.cpp EXCLUDE)
|
|
|
|
install (EXPORT bond
|
|
DESTINATION lib/bond
|
|
EXPORT_LINK_INTERFACE_LIBRARIES)
|
|
|
|
# if BOND_GBC_PATH is set we must copy over that gbc to the install location
|
|
if (BOND_GBC_PATH)
|
|
if (WIN32)
|
|
set(INSTALLED_GBC_NAME gbc.exe)
|
|
else()
|
|
set(INSTALLED_GBC_NAME gbc)
|
|
endif()
|
|
|
|
install (
|
|
FILES ${BOND_GBC_PATH}
|
|
DESTINATION bin
|
|
RENAME ${INSTALLED_GBC_NAME})
|
|
endif()
|