summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt39
1 files changed, 29 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3931ec5..e99269a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,26 +7,46 @@ 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)
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}
)
+# 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()
+
# release build settings
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wno-nontrivial-memcall")
# debug build settings
@@ -43,5 +63,4 @@ add_custom_target(release
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Building ~~**RELEASE**~~"
-)
-
+) \ No newline at end of file