0f8a29fdb9
Co-authored-by: nerix <nerixdev@outlook.de>
52 lines
1.5 KiB
CMake
52 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
cmake_policy(SET CMP0087 NEW) # evaluates generator expressions in `install(CODE/SCRIPT)`
|
|
cmake_policy(SET CMP0091 NEW) # select MSVC runtime library through `CMAKE_MSVC_RUNTIME_LIBRARY`
|
|
|
|
project(twitch-eventsub-ws-example VERSION 0.1.0)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
add_executable(${PROJECT_NAME} main.cpp)
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/.." twitch-eventsub-ws)
|
|
|
|
find_library(LIBRT rt)
|
|
find_package(Threads REQUIRED)
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
PUBLIC
|
|
|
|
Threads::Threads
|
|
twitch-eventsub-ws
|
|
)
|
|
|
|
# Set the output of TARGET to be
|
|
# - CMAKE_BIN_DIR/lib for libraries
|
|
# - CMAKE_BIN_DIR/bin for BINARIES
|
|
# an additional argument specifies the subdirectory.
|
|
function(set_target_directory_hierarchy TARGET)
|
|
set_target_properties(${TARGET}
|
|
PROPERTIES
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/${ARGV1}"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/${ARGV1}"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/${ARGV1}"
|
|
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin/${ARGV1}"
|
|
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin/${ARGV1}"
|
|
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin/${ARGV1}"
|
|
)
|
|
endfunction()
|
|
|
|
set_target_directory_hierarchy(${PROJECT_NAME})
|
|
|
|
if (MSVC)
|
|
target_compile_options(${PROJECT_NAME} PUBLIC /EHsc /bigobj)
|
|
endif ()
|
|
|
|
if (LIBRT)
|
|
target_link_libraries(${PROJECT_NAME}
|
|
PUBLIC
|
|
${LIBRT}
|
|
)
|
|
endif ()
|