Launcher/sources/CMakeLists.txt

56 lines
1.4 KiB
CMake

cmake_minimum_required(VERSION 3.24)
project(launcher
VERSION 1.0
DESCRIPTION "Launcher"
LANGUAGES CXX
)
include(${CMAKE_CURRENT_SOURCE_DIR}/../_cmake/app_settings.cmake)
set(PROJECT_SOURCES
main.cpp
)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(PROJECT_RC_FILES
${RESOURCES_DIR}/main_icon.rc
${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc
)
# Настройки для MSVC
if(MSVC)
# Статическая линковка CRT
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
# Оптимизация размера и скорости
add_compile_options(
"$<$<CONFIG:RELEASE>:/Os>" # Оптимизация по размеру
"$<$<CONFIG:RELEASE>:/Oy>" # Отключение кадров стека
"$<$<CONFIG:RELEASE>:/GL>" # Включение LTO
)
# Настройки линковщика
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /OPT:REF /OPT:ICF")
endif()
add_executable(${PROJECT_NAME} WIN32
${PROJECT_SOURCES}
${PROJECT_RC_FILES}
)
target_link_libraries(${PROJECT_NAME}
PRIVATE Kernel32.lib
PRIVATE shlwapi.lib
)
else ()
#target_compile_options(${PROJECT_NAME} PRIVATE -Werror -Wall -Wextra -Wpedantic)
endif ()