forked from um/kgg-dec
39 lines
1.1 KiB
CMake
39 lines
1.1 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
project(kgg-dec LANGUAGES CXX)
|
|
|
|
include(CheckIPOSupported)
|
|
check_ipo_supported(RESULT lto_supported OUTPUT error)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
add_executable(kgg-dec
|
|
src/main.cpp
|
|
src/common/base64.cpp
|
|
src/infra/infra.cpp
|
|
src/tc_tea/tc_tea.cpp
|
|
src/qmc2/ekey.cpp
|
|
src/qmc2/qmc2_factory.cpp
|
|
src/qmc2/qmc2_map.cpp
|
|
src/qmc2/qmc2_rc4.cpp
|
|
)
|
|
|
|
target_include_directories(kgg-dec
|
|
PRIVATE
|
|
src/common
|
|
src/tc_tea
|
|
)
|
|
|
|
target_link_libraries(kgg-dec PRIVATE shell32 ole32)
|
|
target_compile_definitions(kgg-dec PRIVATE NOMINMAX)
|
|
|
|
if (lto_supported)
|
|
set_property(TARGET kgg-dec PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
|
|
endif ()
|
|
|
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s -fdata-sections -ffunction-sections -flto -fmerge-all-constants -fno-exceptions -fno-rtti")
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s -Wl,--gc-sections -flto")
|
|
endif ()
|