diff --git a/CMakeLists.txt b/CMakeLists.txt index 0738046..4453d0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,9 +90,10 @@ configure_file(cmake/libcap_capability.h.in # Library with basic project settings. The empty file is there to be able to # define header-only libraries without cumbersome target_sources() hacks. -file(WRITE "${SAPI_BINARY_DIR}/sapi_base_force_cxx_linkage.cc" "") +configure_file(cmake/sapi_force_cxx_linkage.cc.in + "${SAPI_BINARY_DIR}/sapi_force_cxx_linkage.cc" COPYONLY) add_library(sapi_base STATIC - "${SAPI_BINARY_DIR}/sapi_base_force_cxx_linkage.cc" + "${SAPI_BINARY_DIR}/sapi_force_cxx_linkage.cc" ) add_library(sapi::base ALIAS sapi_base) target_compile_features(sapi_base PUBLIC diff --git a/cmake/SapiBuildDefs.cmake b/cmake/SapiBuildDefs.cmake index 3f71ee1..d20df11 100644 --- a/cmake/SapiBuildDefs.cmake +++ b/cmake/SapiBuildDefs.cmake @@ -111,10 +111,9 @@ function(add_sapi_library) # The sandboxed binary set(_sapi_bin "${_sapi_NAME}.bin") - set(_sapi_force_cxx_linkage - "${CMAKE_CURRENT_BINARY_DIR}/${_sapi_bin}_force_cxx_linkage.cc") - file(WRITE "${_sapi_force_cxx_linkage}" "") - add_executable("${_sapi_bin}" "${_sapi_force_cxx_linkage}") + add_executable("${_sapi_bin}" + "${SAPI_BINARY_DIR}/sapi_force_cxx_linkage.cc" + ) target_link_libraries("${_sapi_bin}" PRIVATE -fuse-ld=gold -Wl,--whole-archive "${_sapi_LIBRARY}" -Wl,--no-whole-archive @@ -192,10 +191,9 @@ function(add_sapi_library) # Library with the interface if(NOT _sapi_SOURCES) - set(_sapi_force_cxx_linkage - "${CMAKE_CURRENT_BINARY_DIR}/${_sapi_NAME}_force_cxx_linkage.cc") - file(WRITE "${_sapi_force_cxx_linkage}" "") - list(APPEND _sapi_SOURCES "${_sapi_force_cxx_linkage}") + list(APPEND _sapi_SOURCES + "${SAPI_BINARY_DIR}/sapi_force_cxx_linkage.cc" + ) endif() add_library("${_sapi_NAME}" STATIC "${_sapi_gen_header}" diff --git a/cmake/sapi_force_cxx_linkage.cc.in b/cmake/sapi_force_cxx_linkage.cc.in new file mode 100644 index 0000000..e69de29 diff --git a/sandboxed_api/util/CMakeLists.txt b/sandboxed_api/util/CMakeLists.txt index c790fa6..2612290 100644 --- a/sandboxed_api/util/CMakeLists.txt +++ b/sandboxed_api/util/CMakeLists.txt @@ -48,10 +48,9 @@ target_link_libraries(sapi_util_fileops PRIVATE ) # sandboxed_api/util:flag -file(WRITE "${SAPI_BINARY_DIR}/sapi_util_flags_force_cxx_linkage.cc" "") add_library(sapi_util_flags ${SAPI_LIB_TYPE} flag.h - "${SAPI_BINARY_DIR}/sapi_util_flags_force_cxx_linkage.cc" + "${SAPI_BINARY_DIR}/sapi_force_cxx_linkage.cc" ) add_library(sapi::flags ALIAS sapi_util_flags) target_link_libraries(sapi_util_flags PUBLIC