diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..3931ec5 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,47 @@ +cmake_minimum_required(VERSION 3.10) + +project(videogame) +set(CMAKE_CXX_COMPILER "clang++") +set(CMAKE_CXX_STANDARD 17) + +file(GLOB_RECURSE SRC_FILES ./src/*.cpp ./src/game/*.cpp ./src/util/config/*.cpp) + +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build) +add_executable(app ${SRC_FILES}) + +find_package(PkgConfig REQUIRED) +pkg_check_modules(GL REQUIRED gl) +pkg_check_modules(SDL2 REQUIRED sdl2) +pkg_check_modules(FREETYPE REQUIRED freetype2) + +target_compile_options(app PRIVATE -Wall) +target_include_directories(app PRIVATE + ${SDL2_INCLUDE_DIRS} + ${FREETYPE_INCLUDE_DIRS} + ${GL_INCLUDE_DIRS} +) +target_link_libraries(app PRIVATE + ${SDL2_LIBRARIES} + ${FREETYPE_LIBRARIES} + ${GL_LIBRARIES} +) + +# release build settings +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wno-nontrivial-memcall") +# debug build settings +set(CMAKE_CXX_FLAGS_DEBUG "-g -DDEBUG=1 -fsanitize=address -Wno-nontrivial-memcall") + +add_custom_target(debug + COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_BINARY_DIR} + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMENT "Building ~~**DEBUG**~~" +) +add_custom_target(release + COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_BINARY_DIR} + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMENT "Building ~~**RELEASE**~~" +) + |
