refactor(cmake): split CMakeLists into modules (#1587)
This commit is contained in:
parent
9543bc77d8
commit
92b4eeee55
41 changed files with 1240 additions and 964 deletions
35
cmake/targets/common.cmake
Normal file
35
cmake/targets/common.cmake
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# common target definitions
|
||||
# this file will also load platform specific macros
|
||||
|
||||
add_executable(sunshine ${SUNSHINE_TARGET_FILES})
|
||||
|
||||
# platform specific target definitions
|
||||
if(WIN32)
|
||||
include(${CMAKE_MODULE_PATH}/targets/windows.cmake)
|
||||
elseif(UNIX)
|
||||
include(${CMAKE_MODULE_PATH}/targets/unix.cmake)
|
||||
|
||||
if(APPLE)
|
||||
include(${CMAKE_MODULE_PATH}/targets/macos.cmake)
|
||||
else()
|
||||
include(${CMAKE_MODULE_PATH}/targets/linux.cmake)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# todo - is this necessary? ... for anything except linux?
|
||||
if(NOT DEFINED CMAKE_CUDA_STANDARD)
|
||||
set(CMAKE_CUDA_STANDARD 17)
|
||||
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
|
||||
endif()
|
||||
|
||||
target_link_libraries(sunshine ${SUNSHINE_EXTERNAL_LIBRARIES} ${EXTRA_LIBS})
|
||||
target_compile_definitions(sunshine PUBLIC ${SUNSHINE_DEFINITIONS})
|
||||
set_target_properties(sunshine PROPERTIES CXX_STANDARD 17
|
||||
VERSION ${PROJECT_VERSION}
|
||||
SOVERSION ${PROJECT_VERSION_MAJOR})
|
||||
|
||||
foreach(flag IN LISTS SUNSHINE_COMPILE_OPTIONS)
|
||||
list(APPEND SUNSHINE_COMPILE_OPTIONS_CUDA "$<$<COMPILE_LANGUAGE:CUDA>:--compiler-options=${flag}>")
|
||||
endforeach()
|
||||
|
||||
target_compile_options(sunshine PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${SUNSHINE_COMPILE_OPTIONS}>;$<$<COMPILE_LANGUAGE:CUDA>:${SUNSHINE_COMPILE_OPTIONS_CUDA};-std=c++17>) # cmake-lint: disable=C0301
|
||||
Loading…
Add table
Add a link
Reference in a new issue