|
| 1 | +cmake_minimum_required(VERSION 3.23) |
| 2 | + |
| 3 | +# Only interpret if() arguments as variables or keywords when unquoted. |
| 4 | +cmake_policy(SET CMP0054 NEW) |
| 5 | +# MSVC runtime library flags are selected by an abstraction. |
| 6 | +cmake_policy(SET CMP0091 NEW) |
| 7 | + |
| 8 | +set(WEBRTC_INCLUDE_DIR "" CACHE PATH "WebRTC のインクルードディレクトリ") |
| 9 | +set(WEBRTC_LIBRARY_DIR "" CACHE PATH "WebRTC のライブラリディレクトリ") |
| 10 | +set(WEBRTC_LIBRARY_NAME "webrtc" CACHE STRING "WebRTC のライブラリ名") |
| 11 | +set(BOOST_ROOT "" CACHE PATH "Boost のルートディレクトリ") |
| 12 | +set(SORA_DIR "" CACHE PATH "Sora のルートディレクトリ") |
| 13 | +set(SDL3_DIR "" CACHE PATH "SDL3 のルートディレクトリ") |
| 14 | +set(CLI11_DIR "" CACHE PATH "CLI11 のルートディレクトリ") |
| 15 | + |
| 16 | +project(sora-sdl-sample C CXX) |
| 17 | + |
| 18 | +list(APPEND CMAKE_PREFIX_PATH ${SORA_DIR} ${SDL3_DIR}) |
| 19 | +list(APPEND CMAKE_MODULE_PATH ${SORA_DIR}/share/cmake) |
| 20 | + |
| 21 | +set(Boost_USE_STATIC_LIBS ON) |
| 22 | + |
| 23 | +find_package(Boost REQUIRED COMPONENTS json filesystem) |
| 24 | +find_package(WebRTC REQUIRED) |
| 25 | +find_package(Sora REQUIRED) |
| 26 | +find_package(SDL3 REQUIRED) |
| 27 | +find_package(Threads REQUIRED) |
| 28 | + |
| 29 | +add_executable(sdl_sample) |
| 30 | +set_target_properties(sdl_sample PROPERTIES CXX_STANDARD 20 C_STANDARD 20) |
| 31 | +set_target_properties(sdl_sample PROPERTIES POSITION_INDEPENDENT_CODE ON) |
| 32 | +set_target_properties(sdl_sample PROPERTIES CXX_VISIBILITY_PRESET hidden) |
| 33 | +target_sources(sdl_sample PRIVATE src/sdl_sample.cpp src/sdl_renderer.cpp) |
| 34 | + |
| 35 | +target_compile_options(sdl_sample |
| 36 | + PRIVATE |
| 37 | + "$<$<COMPILE_LANGUAGE:CXX>:-nostdinc++>" |
| 38 | + "$<$<COMPILE_LANGUAGE:CXX>:-isystem${LIBCXX_INCLUDE_DIR}>" |
| 39 | +) |
| 40 | +target_include_directories(sdl_sample PRIVATE ${CLI11_DIR}/include) |
| 41 | +target_link_libraries(sdl_sample PRIVATE Sora::sora SDL3::SDL3) |
| 42 | +target_compile_definitions(sdl_sample PRIVATE CLI11_HAS_FILESYSTEM=0) |
0 commit comments