mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2026-08-18 08:08:53 +00:00
CMake: fixes for xcodebuild
This commit is contained in:
@@ -137,6 +137,11 @@ if(ENABLE_PACKAGING)
|
||||
set(ENABLE_STRIP OFF)
|
||||
endif()
|
||||
|
||||
option(ENABLE_GNSSSDR_ADHOC_CODESIGN
|
||||
"Ad-hoc sign local Darwin build-tree executables that must run after the build."
|
||||
ON
|
||||
)
|
||||
|
||||
# Testing
|
||||
option(ENABLE_UNIT_TESTING "Build unit tests" ON)
|
||||
|
||||
@@ -275,6 +280,12 @@ endif()
|
||||
if(NOT ("${CMAKE_BUILD_TYPE}" STREQUAL "Release"))
|
||||
set(ENABLE_STRIP OFF)
|
||||
endif()
|
||||
if("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
|
||||
find_program(CODESIGN_EXECUTABLE codesign)
|
||||
endif()
|
||||
if(NOT CODESIGN_EXECUTABLE)
|
||||
set(ENABLE_GNSSSDR_ADHOC_CODESIGN OFF)
|
||||
endif()
|
||||
|
||||
# Enable optimization options in GCC for Release and RelWithDebInfo build types
|
||||
if((${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU") AND (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
|
||||
@@ -3417,6 +3428,7 @@ add_feature_info(ENABLE_INSTALL_TESTS ENABLE_INSTALL_TESTS "Install test binarie
|
||||
add_feature_info(ENABLE_BENCHMARKS ENABLE_BENCHMARKS "Enables building of code snippet benchmarks.")
|
||||
add_feature_info(ENABLE_EXTERNAL_MATHJAX ENABLE_EXTERNAL_MATHJAX "Use MathJax from an external CDN in HTML docs when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'.")
|
||||
add_feature_info(ENABLE_CPUFEATURES ENABLE_CPUFEATURES "Make use of the cpu_features library.")
|
||||
add_feature_info(ENABLE_GNSSSDR_ADHOC_CODESIGN ENABLE_GNSSSDR_ADHOC_CODESIGN "Ad-hoc sign local Darwin build-tree executables that must run after the build.")
|
||||
add_feature_info(Boost_USE_STATIC_LIBS Boost_USE_STATIC_LIBS "Use Boost static libraries.")
|
||||
|
||||
message(STATUS "")
|
||||
|
||||
@@ -175,6 +175,24 @@ ExternalProject_Add(protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
|
||||
if("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
|
||||
find_program(CODESIGN_EXECUTABLE codesign)
|
||||
|
||||
if(CODESIGN_EXECUTABLE)
|
||||
ExternalProject_Add_Step(
|
||||
protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}
|
||||
codesign_protoc
|
||||
COMMAND ${CODESIGN_EXECUTABLE}
|
||||
--force
|
||||
--sign -
|
||||
${PROTOBUF_PROTOC_EXECUTABLE_}
|
||||
DEPENDEES build
|
||||
COMMENT "Ad-hoc signing bundled protoc executable"
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
file(MAKE_DIRECTORY ${GNSSSDR_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}/include)
|
||||
file(MAKE_DIRECTORY ${GNSSSDR_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}/${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
|
||||
+28
-4
@@ -88,10 +88,34 @@ if(ENABLE_CLANG_TIDY)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_custom_command(TARGET gnss-sdr
|
||||
POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:gnss-sdr>
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:gnss-sdr>
|
||||
)
|
||||
if(ENABLE_GNSSSDR_ADHOC_CODESIGN)
|
||||
add_custom_command(TARGET gnss-sdr POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory
|
||||
${LOCAL_INSTALL_BASE_DIR}/install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
$<TARGET_FILE:gnss-sdr>
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:gnss-sdr>.tmp
|
||||
COMMAND ${CODESIGN_EXECUTABLE}
|
||||
--force
|
||||
--sign -
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:gnss-sdr>.tmp
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:gnss-sdr>
|
||||
COMMAND ${CMAKE_COMMAND} -E rename
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:gnss-sdr>.tmp
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:gnss-sdr>
|
||||
VERBATIM
|
||||
)
|
||||
else()
|
||||
add_custom_command(TARGET gnss-sdr POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory
|
||||
${LOCAL_INSTALL_BASE_DIR}/install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
$<TARGET_FILE:gnss-sdr>
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:gnss-sdr>
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
|
||||
install(TARGETS gnss-sdr
|
||||
RUNTIME DESTINATION bin
|
||||
|
||||
+43
-9
@@ -15,6 +15,43 @@ if(CMAKE_VERSION VERSION_LESS "3.5")
|
||||
include(CMakeParseArguments)
|
||||
endif()
|
||||
|
||||
function(gnsssdr_copy_target_to_local_install target)
|
||||
if(NOT TARGET ${target})
|
||||
message(FATAL_ERROR
|
||||
"gnsssdr_copy_target_to_local_install called for unknown target: ${target}"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ENABLE_GNSSSDR_ADHOC_CODESIGN)
|
||||
add_custom_command(TARGET ${target} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory
|
||||
${LOCAL_INSTALL_BASE_DIR}/install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
"$<TARGET_FILE:${target}>"
|
||||
"${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:${target}>.tmp"
|
||||
COMMAND ${CODESIGN_EXECUTABLE}
|
||||
--force
|
||||
--sign -
|
||||
"${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:${target}>.tmp"
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f
|
||||
"${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:${target}>"
|
||||
COMMAND ${CMAKE_COMMAND} -E rename
|
||||
"${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:${target}>.tmp"
|
||||
"${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:${target}>"
|
||||
VERBATIM
|
||||
)
|
||||
else()
|
||||
add_custom_command(TARGET ${target} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory
|
||||
${LOCAL_INSTALL_BASE_DIR}/install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
"$<TARGET_FILE:${target}>"
|
||||
"${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:${target}>"
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Helper to fetch optional test data with integrity checking and optional uncompressing
|
||||
#
|
||||
# Arguments:
|
||||
@@ -711,10 +748,7 @@ if(ENABLE_UNIT_TESTING)
|
||||
endif()
|
||||
install(TARGETS run_tests RUNTIME DESTINATION bin COMPONENT "run_tests")
|
||||
else()
|
||||
add_custom_command(TARGET run_tests POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:run_tests>
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:run_tests>
|
||||
)
|
||||
gnsssdr_copy_target_to_local_install(run_tests)
|
||||
endif()
|
||||
if(ENABLE_GPERFTOOLS)
|
||||
if(GPERFTOOLS_FOUND)
|
||||
@@ -882,12 +916,12 @@ function(add_system_test executable)
|
||||
if(EXISTS ${LOCAL_INSTALL_BASE_DIR}/install/${executable})
|
||||
file(REMOVE ${LOCAL_INSTALL_BASE_DIR}/install/${executable})
|
||||
endif()
|
||||
install(TARGETS ${executable} RUNTIME DESTINATION bin COMPONENT "${executable}_test")
|
||||
else()
|
||||
add_custom_command(TARGET ${executable} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${executable}>
|
||||
${LOCAL_INSTALL_BASE_DIR}/install/$<TARGET_FILE_NAME:${executable}>
|
||||
install(TARGETS ${executable}
|
||||
RUNTIME DESTINATION bin
|
||||
COMPONENT "${executable}_test"
|
||||
)
|
||||
else()
|
||||
gnsssdr_copy_target_to_local_install(${executable})
|
||||
endif()
|
||||
|
||||
xcode_remove_warning_duplicates(${executable})
|
||||
|
||||
Reference in New Issue
Block a user