# 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 "$<$:--compiler-options=${flag}>") endforeach() target_compile_options(sunshine PRIVATE $<$:${SUNSHINE_COMPILE_OPTIONS}>;$<$:${SUNSHINE_COMPILE_OPTIONS_CUDA};-std=c++17>) # cmake-lint: disable=C0301 #WebUI build add_custom_target(web-ui ALL WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Installing NPM Dependencies and Building the Web UI" COMMAND bash -c \"npm install && SUNSHINE_SOURCE_ASSETS_DIR=${SUNSHINE_SOURCE_ASSETS_DIR} SUNSHINE_ASSETS_DIR=${CMAKE_BINARY_DIR} npm run build\") # cmake-lint: disable=C0301