thorium-mirror/pak_src/CMakeLists.txt
2023-03-07 06:40:20 -06:00

31 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.0)
cmake_policy(SET CMP0048 NEW)
project(pak VERSION 2.0.2 LANGUAGES C)
option(LGPL "Use custom startfiles on windows for smaller binary, requiring GNU Lesser General Public License 2.1+." ON)
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release." FORCE)
endif (NOT CMAKE_BUILD_TYPE)
if (MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MT /wd4996 /wd4068")
set(CompilerFlags
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE)
foreach (CompilerFlag ${CompilerFlags})
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
endforeach ()
endif ()
if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
set(CMAKE_C_FLAGS "-O3 -pipe -Wall -Wextra -fmerge-all-constants -Wl,--gc-sections,--build-id=none -Wno-format-extra-args -Wno-unused-result")
set(CMAKE_C_FLAGS_DEBUG "-g")
set(CMAKE_C_FLAGS_RELEASE "-O3 -s -g0 -DNDEBUG")
set(CMAKE_CPP_FLAGS_RELEASE "-O3 -s -g0 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -s -g0 -DNDEBUG")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-Wl,-O3")
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "-Wl,-O3")
if (WIN32 AND LGPL)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostartfiles -D_LGPL")
endif ()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_C_FLAGS} -Wl,-O3")
endif ()
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} DIR_SRCS)
add_executable(pak ${DIR_SRCS})