36 lines
1.0 KiB
CMake
36 lines
1.0 KiB
CMake
cmake_minimum_required(VERSION 3.24)
|
|
|
|
project(launcher LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# Настройки для 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 main.cpp)
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
PRIVATE Kernel32.lib
|
|
PRIVATE shlwapi.lib
|
|
)
|
|
|
|
include(GNUInstallDirs)
|
|
install(TARGETS ${PROJECT_NAME}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
)
|