Skip to content

Commit 6fbbc0e

Browse files
wdeconinckhavogt
authored andcommitted
Add support for nesting in CMake bundles (#44)
Avoid RPATH mess when building bundle with BUILD_SHARED_LIBS=ON by compiling bindings with STATIC.
1 parent 48cb6f0 commit 6fbbc0e

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

cmake/cpp_bindgen.cmake.in

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ include_guard(GLOBAL)
3030

3131
option(GT_ENABLE_BINDINGS_GENERATION "If turned off, bindings will not be generated." ON)
3232

33+
# in some conditions the include guard above doesn't work
34+
if( NOT TARGET cpp_bindgen_interface )
35+
3336
# variables are unset after use for scoping, they need to be redefined in the macros
3437
set(__CPP_BINDGEN_SOURCE_DIR @__CPP_BINDGEN_SOURCE_DIR@)
3538
set(__CPP_BINDGEN_INCLUDE_DIR @__CPP_BINDGEN_INCLUDE_DIR@)
@@ -42,17 +45,19 @@ if(CPP_BINDGEN_GT_LEGACY)
4245
target_compile_definitions(cpp_bindgen_interface INTERFACE CPP_BINDGEN_GT_LEGACY)
4346
endif()
4447

45-
add_library(cpp_bindgen_generator ${__CPP_BINDGEN_SOURCE_DIR}/cpp_bindgen/generator.cpp)
48+
add_library(cpp_bindgen_generator STATIC ${__CPP_BINDGEN_SOURCE_DIR}/cpp_bindgen/generator.cpp)
4649
# PUBLIC to make export.hpp available in the sources passed to add_bindings_library()
4750
target_link_libraries(cpp_bindgen_generator PUBLIC Boost::boost)
4851
target_link_libraries(cpp_bindgen_generator PUBLIC cpp_bindgen_interface)
4952

50-
add_library(cpp_bindgen_handle ${__CPP_BINDGEN_SOURCE_DIR}/cpp_bindgen/handle.cpp)
53+
add_library(cpp_bindgen_handle STATIC ${__CPP_BINDGEN_SOURCE_DIR}/cpp_bindgen/handle.cpp)
5154
target_link_libraries(cpp_bindgen_handle PUBLIC cpp_bindgen_interface)
5255

5356
unset(__CPP_BINDGEN_SOURCE_DIR)
5457
unset(__CPP_BINDGEN_INCLUDE_DIR)
5558

59+
endif()
60+
5661
# bindgen_enable_fortran_library()
5762
#
5863
# Create a target to compile the generated Fortran module.
@@ -115,7 +120,7 @@ function(bindgen_add_library target_name)
115120
set(bindings_fortran_decl_filename ${CMAKE_CURRENT_LIST_DIR}/${target_name}.f90) # default value
116121
endif()
117122

118-
add_library(${target_name} ${ARG_SOURCES})
123+
add_library(${target_name} STATIC ${ARG_SOURCES})
119124
target_link_libraries(${target_name} PRIVATE cpp_bindgen_generator)
120125

121126
if(GT_ENABLE_BINDINGS_GENERATION)

0 commit comments

Comments
 (0)