mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-02-07 14:40:12 +00:00
Fix for Xcode new build system
CI: add new build-macos-xcode job
This commit is contained in:
parent
bb03d42177
commit
a975e33dab
15
.github/workflows/main.yml
vendored
15
.github/workflows/main.yml
vendored
@ -41,6 +41,21 @@ jobs:
|
|||||||
- name: default position_test
|
- name: default position_test
|
||||||
run: cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. && ninja && ../install/position_test
|
run: cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. && ninja && ../install/position_test
|
||||||
|
|
||||||
|
build-macos-xcode:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: install dependencies
|
||||||
|
run: brew update && brew install ninja pkg-config hdf5 automake armadillo lapack gflags glog gnuradio log4cpp openssl pugixml protobuf && pip3 install mako
|
||||||
|
- name: configure
|
||||||
|
run: cd build && cmake -GXcode ..
|
||||||
|
- name: build
|
||||||
|
run: cd build && xcodebuild -configuration Release
|
||||||
|
- name: check
|
||||||
|
run: cd build && xcodebuild -configuration Release -target check && ../install/volk_gnsssdr_profile && ../install/run_tests
|
||||||
|
- name: default position_test
|
||||||
|
run: cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. && xcodebuild -configuration Release -target position_test && ../install/position_test
|
||||||
|
|
||||||
clang-format:
|
clang-format:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -1115,14 +1115,12 @@ if(NOT VOLKGNSSSDR_FOUND)
|
|||||||
if(PYTHON_EXECUTABLE)
|
if(PYTHON_EXECUTABLE)
|
||||||
set(USE_THIS_PYTHON "-DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}")
|
set(USE_THIS_PYTHON "-DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}")
|
||||||
endif()
|
endif()
|
||||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
||||||
if(CMAKE_GENERATOR STREQUAL Xcode)
|
if(CMAKE_GENERATOR STREQUAL Xcode)
|
||||||
set(VOLK_GNSSSDR_BUILD_COMMAND "xcodebuild"
|
set(VOLK_GNSSSDR_BUILD_COMMAND "xcodebuild"
|
||||||
"-configuration" $<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>$<$<CONFIG:RelWithDebInfo>:RelWithDebInfo>$<$<CONFIG:MinSizeRel>:MinSizeRel>
|
"-configuration" $<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>$<$<CONFIG:RelWithDebInfo>:RelWithDebInfo>$<$<CONFIG:MinSizeRel>:MinSizeRel>
|
||||||
"-alltargets"
|
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_TOOLCHAIN_FILE)
|
if(CMAKE_TOOLCHAIN_FILE)
|
||||||
set(VOLK_GNSSSDR_COMPILER "")
|
set(VOLK_GNSSSDR_COMPILER "")
|
||||||
@ -1155,11 +1153,7 @@ if(NOT VOLKGNSSSDR_FOUND)
|
|||||||
${STRIP_VOLK_GNSSSDR_PROFILE}
|
${STRIP_VOLK_GNSSSDR_PROFILE}
|
||||||
${USE_THIS_PYTHON}
|
${USE_THIS_PYTHON}
|
||||||
)
|
)
|
||||||
if(CMAKE_VERSION VERSION_GREATER 3.18.99 AND CMAKE_GENERATOR STREQUAL Xcode)
|
|
||||||
if(XCODE_VERSION VERSION_GREATER 11)
|
|
||||||
set(VOLK_GNSSSDR_CMAKE_ARGS ${VOLK_GNSSSDR_CMAKE_ARGS} -T buildsystem=1)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(DEFINED ENV{OECORE_TARGET_SYSROOT})
|
if(DEFINED ENV{OECORE_TARGET_SYSROOT})
|
||||||
set(VOLK_GNSSSDR_CMAKE_ARGS ${VOLK_GNSSSDR_CMAKE_ARGS}
|
set(VOLK_GNSSSDR_CMAKE_ARGS ${VOLK_GNSSSDR_CMAKE_ARGS}
|
||||||
-DCROSSCOMPILE_MULTILIB=TRUE
|
-DCROSSCOMPILE_MULTILIB=TRUE
|
||||||
|
@ -35,8 +35,6 @@ add_executable(volk_gnsssdr_profile
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/volk_gnsssdr_option_helpers.cc
|
${CMAKE_CURRENT_SOURCE_DIR}/volk_gnsssdr_option_helpers.cc
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies(volk_gnsssdr_profile volk_gnsssdr)
|
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
target_include_directories(volk_gnsssdr_profile
|
target_include_directories(volk_gnsssdr_profile
|
||||||
PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/cmake/msvc>
|
PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/cmake/msvc>
|
||||||
@ -59,7 +57,6 @@ if(NOT FILESYSTEM_FOUND)
|
|||||||
target_link_libraries(volk_gnsssdr_profile PRIVATE ${Boost_LIBRARIES})
|
target_link_libraries(volk_gnsssdr_profile PRIVATE ${Boost_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(FILESYSTEM_FOUND)
|
if(FILESYSTEM_FOUND)
|
||||||
add_definitions(-DHAS_STD_FILESYSTEM=1)
|
add_definitions(-DHAS_STD_FILESYSTEM=1)
|
||||||
if(${find_experimental})
|
if(${find_experimental})
|
||||||
@ -72,10 +69,8 @@ if(ENABLE_STATIC_LIBS)
|
|||||||
target_link_libraries(volk_gnsssdr_profile PRIVATE volk_gnsssdr_static ${orc_lib})
|
target_link_libraries(volk_gnsssdr_profile PRIVATE volk_gnsssdr_static ${orc_lib})
|
||||||
else()
|
else()
|
||||||
target_link_libraries(volk_gnsssdr_profile PRIVATE volk_gnsssdr ${orc_lib})
|
target_link_libraries(volk_gnsssdr_profile PRIVATE volk_gnsssdr ${orc_lib})
|
||||||
add_dependencies(volk_gnsssdr_profile volk_gnsssdr)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(ENABLE_STRIP)
|
if(ENABLE_STRIP)
|
||||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT WIN32)
|
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT WIN32)
|
||||||
set_target_properties(volk_gnsssdr_profile
|
set_target_properties(volk_gnsssdr_profile
|
||||||
@ -84,23 +79,19 @@ if(ENABLE_STRIP)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
install(
|
install(
|
||||||
TARGETS volk_gnsssdr_profile
|
TARGETS volk_gnsssdr_profile
|
||||||
DESTINATION bin
|
DESTINATION bin
|
||||||
COMPONENT "volk_gnsssdr"
|
COMPONENT "volk_gnsssdr"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# MAKE volk_gnsssdr-config-info
|
# MAKE volk_gnsssdr-config-info
|
||||||
add_executable(volk_gnsssdr-config-info volk_gnsssdr-config-info.cc ${CMAKE_CURRENT_SOURCE_DIR}/volk_gnsssdr_option_helpers.cc)
|
add_executable(volk_gnsssdr-config-info volk_gnsssdr-config-info.cc ${CMAKE_CURRENT_SOURCE_DIR}/volk_gnsssdr_option_helpers.cc)
|
||||||
|
|
||||||
|
|
||||||
if(ENABLE_STATIC_LIBS)
|
if(ENABLE_STATIC_LIBS)
|
||||||
target_link_libraries(volk_gnsssdr-config-info volk_gnsssdr_static ${orc_lib})
|
target_link_libraries(volk_gnsssdr-config-info volk_gnsssdr_static ${orc_lib})
|
||||||
else()
|
else()
|
||||||
target_link_libraries(volk_gnsssdr-config-info volk_gnsssdr ${orc_lib})
|
target_link_libraries(volk_gnsssdr-config-info volk_gnsssdr ${orc_lib})
|
||||||
add_dependencies(volk_gnsssdr-config-info volk_gnsssdr)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_STRIP)
|
if(ENABLE_STRIP)
|
||||||
@ -117,7 +108,6 @@ install(
|
|||||||
COMPONENT "volk_gnsssdr"
|
COMPONENT "volk_gnsssdr"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# Launch volk_gnsssdr_profile if requested to do so
|
# Launch volk_gnsssdr_profile if requested to do so
|
||||||
if(ENABLE_PROFILING)
|
if(ENABLE_PROFILING)
|
||||||
if(DEFINED VOLK_CONFIGPATH)
|
if(DEFINED VOLK_CONFIGPATH)
|
||||||
|
@ -558,12 +558,16 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Add dynamic library
|
# Add dynamic library
|
||||||
if(CMAKE_GENERATOR STREQUAL Xcode)
|
# Note: new Xcode buildsystem does not allow building both static and dynamic libraries
|
||||||
|
# so we only build dynamic if ENABLE_STATIC_LIBS is not enabled in that generator.
|
||||||
|
# For other generators than XCode, the dynamic library is always built.
|
||||||
|
if(NOT (ENABLE_STATIC_LIBS AND (CMAKE_GENERATOR STREQUAL Xcode)))
|
||||||
|
if(CMAKE_GENERATOR STREQUAL Xcode)
|
||||||
add_library(volk_gnsssdr SHARED ${volk_gnsssdr_sources})
|
add_library(volk_gnsssdr SHARED ${volk_gnsssdr_sources})
|
||||||
else()
|
else()
|
||||||
add_library(volk_gnsssdr SHARED $<TARGET_OBJECTS:volk_gnsssdr_obj>)
|
add_library(volk_gnsssdr SHARED $<TARGET_OBJECTS:volk_gnsssdr_obj>)
|
||||||
endif()
|
endif()
|
||||||
if(USE_CPU_FEATURES)
|
if(USE_CPU_FEATURES)
|
||||||
if(CPUFEATURES_FOUND)
|
if(CPUFEATURES_FOUND)
|
||||||
target_link_libraries(volk_gnsssdr
|
target_link_libraries(volk_gnsssdr
|
||||||
PUBLIC ${volk_gnsssdr_libraries}
|
PUBLIC ${volk_gnsssdr_libraries}
|
||||||
@ -575,18 +579,18 @@ if(USE_CPU_FEATURES)
|
|||||||
PRIVATE cpu_features
|
PRIVATE cpu_features
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
target_link_libraries(volk_gnsssdr PUBLIC ${volk_gnsssdr_libraries})
|
target_link_libraries(volk_gnsssdr PUBLIC ${volk_gnsssdr_libraries})
|
||||||
endif()
|
endif()
|
||||||
target_include_directories(volk_gnsssdr
|
target_include_directories(volk_gnsssdr
|
||||||
PUBLIC $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
|
PUBLIC $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
|
||||||
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
||||||
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/kernels>
|
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/kernels>
|
||||||
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
|
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
PUBLIC $<INSTALL_INTERFACE:include>
|
PUBLIC $<INSTALL_INTERFACE:include>
|
||||||
)
|
)
|
||||||
if(USE_CPU_FEATURES)
|
if(USE_CPU_FEATURES)
|
||||||
if(CPUFEATURES_FOUND)
|
if(CPUFEATURES_FOUND)
|
||||||
target_include_directories(volk_gnsssdr
|
target_include_directories(volk_gnsssdr
|
||||||
PRIVATE
|
PRIVATE
|
||||||
@ -598,25 +602,26 @@ if(USE_CPU_FEATURES)
|
|||||||
$<TARGET_PROPERTY:cpu_features,INTERFACE_INCLUDE_DIRECTORIES>
|
$<TARGET_PROPERTY:cpu_features,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
# Configure target properties
|
# Configure target properties
|
||||||
if(ORC_FOUND)
|
if(ORC_FOUND)
|
||||||
target_link_libraries(volk_gnsssdr PRIVATE ${ORC_LIBRARIES})
|
target_link_libraries(volk_gnsssdr PRIVATE ${ORC_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
target_link_libraries(volk_gnsssdr PUBLIC m)
|
target_link_libraries(volk_gnsssdr PUBLIC m)
|
||||||
endif()
|
endif()
|
||||||
set_target_properties(volk_gnsssdr PROPERTIES VERSION ${VERSION})
|
set_target_properties(volk_gnsssdr PROPERTIES VERSION ${VERSION})
|
||||||
set_target_properties(volk_gnsssdr PROPERTIES SOVERSION ${SOVERSION})
|
set_target_properties(volk_gnsssdr PROPERTIES SOVERSION ${SOVERSION})
|
||||||
set_target_properties(volk_gnsssdr PROPERTIES DEFINE_SYMBOL "volk_gnsssdr_EXPORTS")
|
set_target_properties(volk_gnsssdr PROPERTIES DEFINE_SYMBOL "volk_gnsssdr_EXPORTS")
|
||||||
|
|
||||||
# Install locations
|
# Install locations
|
||||||
install(TARGETS volk_gnsssdr
|
install(TARGETS volk_gnsssdr
|
||||||
EXPORT VOLK_GNSSSDR-export
|
EXPORT VOLK_GNSSSDR-export
|
||||||
LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT "volk_gnsssdr_runtime" # .so file
|
LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT "volk_gnsssdr_runtime" # .so file
|
||||||
ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "volk_gnsssdr_devel" # .lib file
|
ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "volk_gnsssdr_devel" # .lib file
|
||||||
RUNTIME DESTINATION bin COMPONENT "volk_gnsssdr_runtime" # .dll file
|
RUNTIME DESTINATION bin COMPONENT "volk_gnsssdr_runtime" # .dll file
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Configure static library
|
# Configure static library
|
||||||
if(ENABLE_STATIC_LIBS)
|
if(ENABLE_STATIC_LIBS)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user