Skip to content

Commit d61fe7e

Browse files
authored
Merge pull request #1 from mjd3/improvements
Improved API from PR (ros-industrial#136), more python bindings, python packaging
2 parents cbf76cd + 69637e4 commit d61fe7e

35 files changed

+2867
-3141
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,8 @@
3333

3434
# Build files
3535
build
36+
_skbuild
3637

37-
.vscode
38+
# Python files
39+
__pycache__
40+
*.egg-info

.gitmodules

Lines changed: 0 additions & 4 deletions
This file was deleted.

CMakeLists.txt

Lines changed: 62 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
cmake_minimum_required(VERSION 3.5)
2+
set(CMAKE_CXX_STANDARD 17)
23

34
# Read version from the package.xml file.
45
file(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

4541
add_library(${PROJECT_NAME} ${SRC_FILES})
4642
add_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-
8464
install(
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

Comments
 (0)