summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt48
1 files changed, 34 insertions, 14 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3931ec5..fc2ce17 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,30 +7,51 @@ 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)
+if(UNIX)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build)
+else()
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+endif()
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)
+pkg_check_modules(GLEW REQUIRED glew)
+
+find_package(OpenGL REQUIRED)
+# 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")
-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}
+ ${GLEW_INCLUDE_DIRS}
+ ${OPENGL_INCLUDE_DIR}
)
-# 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")
+# Platform-specific linking
+if(WIN32)
+ target_link_libraries(app PRIVATE
+ ${SDL2_LIBRARIES}
+ ${FREETYPE_LIBRARIES}
+ ${GLEW_LIBRARIES}
+ ${OPENGL_LIBRARIES}
+ winmm # For timeGetDevCaps, timeBeginPeriod, timeEndPeriod
+ )
+else()
+ target_link_libraries(app PRIVATE
+ ${SDL2_LIBRARIES}
+ ${FREETYPE_LIBRARIES}
+ ${GLEW_LIBRARIES}
+ ${OPENGL_LIBRARIES}
+ )
+endif()
+
+target_compile_options(app PRIVATE -Wall)
+target_compile_options(app PRIVATE -Wno-nontrivial-memcall)
add_custom_target(debug
COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_BINARY_DIR}
@@ -44,4 +65,3 @@ add_custom_target(release
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Building ~~**RELEASE**~~"
)
-