11cmake_minimum_required (VERSION 3.5)
2+ set (CMAKE_CXX_STANDARD 17)
23
34# Read version from the package.xml file.
45file (READ ${CMAKE_CURRENT_SOURCE_DIR} /package.xml package_xml_str)
@@ -28,19 +29,14 @@ find_package(Poco 1.4.3 REQUIRED COMPONENTS Foundation Net Util XML)
2829###########
2930## Build ##
3031###########
31- if (NOT DEFINED BUILD_SHARED_LIBS )
32- option (BUILD_SHARED_LIBS "Build dynamically-linked binaries" ON )
33- endif ()
32+ option (BUILD_SHARED_LIBS "Build dynamically-linked binaries" ON )
33+ option (USE_PYTHON "Build the Python interface" ON )
3434
35- set (
36- SRC_FILES
37- src/rws_client.cpp
38- src/rws_common.cpp
39- src/rws_interface.cpp
40- src/rws_poco_client.cpp
41- src/rws_rapid.cpp
42- src/rws_state_machine_interface.cpp
43- )
35+ file (GLOB SRC_FILES "src/*.cpp" )
36+
37+ if (USE_PYTHON)
38+ add_subdirectory (python)
39+ endif ()
4440
4541add_library (${PROJECT_NAME} ${SRC_FILES} )
4642add_library (${PROJECT_NAME} ::${PROJECT_NAME} ALIAS ${PROJECT_NAME} )
@@ -65,22 +61,6 @@ endif()
6561#############
6662## Install ##
6763#############
68- install (
69- DIRECTORY include /
70- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
71- )
72-
73- install (
74- FILES
75- ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} _export.h
76- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME}
77- )
78-
79- install (
80- DIRECTORY cmake/modules/third_party/
81- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME} /cmake
82- )
83-
8464install (
8565 TARGETS ${PROJECT_NAME}
8666 EXPORT export_${PROJECT_NAME}
@@ -89,39 +69,57 @@ install(
8969 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
9070)
9171
92- include (CMakePackageConfigHelpers)
93-
94- # Create the ${PROJECT_NAME}Config.cmake.
95- configure_file (
96- ${CMAKE_CURRENT_SOURCE_DIR} /cmake/${PROJECT_NAME} Config.cmake.in
97- "${PROJECT_BINARY_DIR} /${CMAKE_FILES_DIRECTORY} /${PROJECT_NAME} Config.cmake" @ONLY
98- )
99-
100- # Create the ${PROJECT_NAME}ConfigVersion.cmake.
101- write_basic_package_version_file(
102- ${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake
103- COMPATIBILITY AnyNewerVersion
104- )
105-
106- install (
107- FILES
108- "${PROJECT_BINARY_DIR} /${CMAKE_FILES_DIRECTORY} /${PROJECT_NAME} Config.cmake"
109- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
110- "${CMAKE_CURRENT_SOURCE_DIR} /package.xml"
111- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME}
112- )
113-
114- # Export targets.
115- set (export_targets ${export_targets} ;${PROJECT_NAME} )
116- export (
117- EXPORT export_${PROJECT_NAME}
118- FILE "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Targets.cmake"
119- NAMESPACE ${PROJECT_NAME} ::
120- )
121-
122- install (
123- EXPORT export_${PROJECT_NAME}
124- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME}
125- FILE ${PROJECT_NAME} Targets.cmake
126- NAMESPACE ${PROJECT_NAME} ::
127- )
72+ if (NOT SKBUILD)
73+ install (
74+ DIRECTORY include /
75+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
76+ )
77+
78+ install (
79+ FILES
80+ ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} _export.h
81+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME}
82+ )
83+
84+ install (
85+ DIRECTORY cmake/modules/third_party/
86+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME} /cmake
87+ )
88+
89+ include (CMakePackageConfigHelpers)
90+
91+ # Create the ${PROJECT_NAME}Config.cmake.
92+ configure_file (
93+ ${CMAKE_CURRENT_SOURCE_DIR} /cmake/${PROJECT_NAME} Config.cmake.in
94+ "${PROJECT_BINARY_DIR} /${CMAKE_FILES_DIRECTORY} /${PROJECT_NAME} Config.cmake" @ONLY
95+ )
96+
97+ # Create the ${PROJECT_NAME}ConfigVersion.cmake.
98+ write_basic_package_version_file(
99+ ${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake
100+ COMPATIBILITY AnyNewerVersion
101+ )
102+
103+ install (
104+ FILES
105+ "${PROJECT_BINARY_DIR} /${CMAKE_FILES_DIRECTORY} /${PROJECT_NAME} Config.cmake"
106+ "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
107+ "${CMAKE_CURRENT_SOURCE_DIR} /package.xml"
108+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME}
109+ )
110+
111+ # Export targets.
112+ set (export_targets ${export_targets} ;${PROJECT_NAME} )
113+ export (
114+ EXPORT export_${PROJECT_NAME}
115+ FILE "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Targets.cmake"
116+ NAMESPACE ${PROJECT_NAME} ::
117+ )
118+
119+ install (
120+ EXPORT export_${PROJECT_NAME}
121+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME}
122+ FILE ${PROJECT_NAME} Targets.cmake
123+ NAMESPACE ${PROJECT_NAME} ::
124+ )
125+ endif ()
0 commit comments