-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
50 lines (39 loc) · 1.67 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
cmake_minimum_required(VERSION 3.27)
project(raylib_pokemon_clone C)
set(CMAKE_C_STANDARD 23)
set(PROJECT_NAME raylib_pokemon_clone)
include(FetchContent)
file(GLOB SOURCES *.c *.cpp *.h *.hpp src/*.c src/*.cpp src/*.h src/*.hpp src/*/*.c src/*/*.cpp src/*/*.h src/*/*.hpp)
add_executable(${PROJECT_NAME} ${SOURCES})
# FetchContent deps
FetchContent_Declare(
tmx
GIT_REPOSITORY https://github.com/baylej/tmx
GIT_TAG tmx_1.10.0
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(tmx)
#target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE )
target_link_libraries(${PROJECT_NAME} PRIVATE tmx)
# Manually vendored deps
add_subdirectory(vendors/slog)
target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE ${PROJECT_SOURCE_DIR}/vendors/slog/src)
target_link_libraries(${PROJECT_NAME} PRIVATE slog)
# vcpkg
# because of raylib - TODO(hector) - make this only for debug builds, figure out
# why this is even needed.
if(APPLE)
message("Building for macOS")
target_compile_options(${PROJECT_NAME} PRIVATE -g -fno-omit-frame-pointer -Wall -Wextra -fsanitize=address)
target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=address,undefined)
elseif (UNIX AND NOT APPLE)
message("Building for Linux")
target_compile_options(${PROJECT_NAME} PRIVATE -g3 -fno-omit-frame-pointer -Wall -Wextra -fsanitize=address)
target_link_options(${PROJECT_NAME} PRIVATE -g3 -fsanitize=address)
endif ()
find_package(glfw3 CONFIG REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE glfw)
find_package(raylib CONFIG REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE raylib)
find_package(cJSON CONFIG REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE cjson)