prog3b_652/CMakeLists.txt
2025-11-17 12:58:36 +01:00

59 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.28)
project(Prog3B)
set(EXECUTABLE_NAME Prog3B)
# Generate compile_commands.json
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 20)
set(SRC_FILES
src/main.cpp
src/gamecube.cpp
src/gamematrix.cpp
)
add_executable(${EXECUTABLE_NAME} ${SRC_FILES})
target_include_directories(${EXECUTABLE_NAME} PRIVATE
${CMAKE_CURRENT_LIST_DIR}/includes
${CMAKE_CURRENT_LIST_DIR}/raylib
)
set(TEST_FILES
src/tests.cpp
src/gamematrix.cpp
)
add_executable(tests ${TEST_FILES})
target_include_directories(tests PRIVATE
${CMAKE_CURRENT_LIST_DIR}/includes
)
if(WIN32)
message(STATUS "Configuring for Windows")
target_link_libraries(${EXECUTABLE_NAME} PRIVATE
${CMAKE_CURRENT_LIST_DIR}/windows/libgamematrix.a
${CMAKE_CURRENT_LIST_DIR}/windows/libraylib.a
opengl32 gdi32 winmm
)
elseif(APPLE)
message(STATUS "Configuring for MacOS")
target_link_libraries(${EXECUTABLE_NAME} PRIVATE
${CMAKE_CURRENT_LIST_DIR}/mac_x86/libgamematrix.a
${CMAKE_CURRENT_LIST_DIR}/mac_x86/libraylib.a
"-framework IOKit"
"-framework Cocoa"
"-framework OpenGL"
)
else()
# --- Linux ---
message(STATUS "Configuring for Linux")
target_link_libraries(${EXECUTABLE_NAME} PRIVATE
${CMAKE_CURRENT_LIST_DIR}/linux/libgamematrix.a
${CMAKE_CURRENT_LIST_DIR}/linux/libraylib.a
GL X11 m
)
endif()