1
1
cmake_minimum_required (VERSION 2.8)
2
- project (dartpy)
2
+ project (dartpy_generator)
3
+
4
+ set (chimera_CONFIGURATION "${CMAKE_CURRENT_SOURCE_DIR} /chimera.yml" )
5
+ set (chimera_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR} /src" )
6
+ set (chimera_GENERATED_DIR "${chimera_SOURCE_DIR} /generated" )
7
+ set (chimera_PLACEHOLDER_FILE "${chimera_SOURCE_DIR} /placeholder.cpp" )
8
+ set (chimera_COMPILE_DATABASE
9
+ "${CMAKE_CURRENT_BINARY_DIR} /compile_commands.json" )
3
10
4
11
# Use MACOSX_RPATH by default on OS X. This was added in CMake 2.8.12 and
5
12
# became default in CMake 3.0. Explicitly setting this policy is necessary to
@@ -12,7 +19,7 @@ endif()
12
19
include (ExternalProject)
13
20
ExternalProject_Add("${PROJECT_NAME} _external"
14
21
DOWNLOAD_COMMAND ""
15
- SOURCE_DIR "${chimera_GENERATED_DIR } "
22
+ SOURCE_DIR "${chimera_SOURCE_DIR } "
16
23
)
17
24
add_custom_target ("${PROJECT_NAME} _bindings" ALL
18
25
DEPENDS "${PROJECT_NAME} _external"
@@ -22,12 +29,6 @@ find_package(chimera QUIET)
22
29
if (${chimera_FOUND} )
23
30
message (STATUS "Found Chimera. Re-generating Boost.Python bindings." )
24
31
25
- set (chimera_CONFIGURATION "${PROJECT_SOURCE_DIR} /chimera.yml" )
26
- set (chimera_GENERATED_DIR "${PROJECT_SOURCE_DIR} /src_generated" )
27
- set (chimera_COMPILE_DATABASE
28
- "${CMAKE_CURRENT_BINARY_DIR} /compile_commands.json" )
29
- set (chimera_SOURCE "${PROJECT_SOURCE_DIR} /src_placeholder/placeholder.cpp" )
30
-
31
32
# Generate a CMake compilation database for use by Chimera.
32
33
set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
33
34
@@ -47,39 +48,29 @@ if(${chimera_FOUND})
47
48
# TODO: This should be set by DART.
48
49
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
49
50
50
- include_directories (
51
- "include"
52
- "src_placeholder"
53
- # Clang ignores docstrings in SYSTEM includes, so we put them here.
54
- ${DART_INCLUDE_DIRS}
55
- )
51
+ # Clang ignores docstrings in SYSTEM includes, so we omit that flag.
52
+ include_directories (${DART_INCLUDE_DIRS} )
56
53
57
54
add_library ("${PROJECT_NAME} _placeholder" SHARED EXCLUDE_FROM_ALL
58
- "${chimera_SOURCE } "
55
+ "${chimera_PLACEHOLDER_FILE } "
59
56
)
60
57
target_link_libraries ("${PROJECT_NAME} _placeholder"
61
58
${DART_LIBRARIES}
62
59
)
63
60
64
- # TODO: This should be done as a build step.
65
- configure_file ("${PROJECT_SOURCE_DIR} /cmake/CMakeLists_bindings.txt.in"
66
- "${PROJECT_SOURCE_DIR} /src_generated/CMakeLists.txt"
67
- @ONLY
68
- )
69
-
70
61
# Use Chimera to re-generate Boost.Python bindings.
71
62
ExternalProject_Add_Step("${PROJECT_NAME} _external" "chimera_bind"
72
63
COMMAND "${chimera_EXECUTABLE} "
73
64
-m "${PROJECT_NAME} "
74
65
-c "${chimera_CONFIGURATION} "
75
66
-o "${chimera_GENERATED_DIR} "
76
67
-p "${chimera_COMPILE_DATABASE} "
77
- "${chimera_SOURCE } "
68
+ "${chimera_PLACEHOLDER_FILE } "
78
69
> "${chimera_GENERATED_DIR} /manifest.txt"
79
70
DEPENDS
80
71
"${chimera_CONFIGURATION} "
81
72
"${chimera_COMPILE_DATABASE} "
82
- "${chimera_SOURCE } "
73
+ "${chimera_PLACEHOLDER_FILE } "
83
74
DEPENDERS
84
75
"configure"
85
76
COMMENT "Generating bindings"
0 commit comments