rayjs/CMakeLists.txt

53 lines
1.8 KiB
CMake
Raw Normal View History

2023-05-01 16:24:56 +00:00
cmake_minimum_required(VERSION 3.1)
2023-05-02 19:33:02 +00:00
project(my-game)
2023-05-01 16:24:56 +00:00
2023-05-03 18:57:07 +00:00
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2023-05-02 19:33:02 +00:00
message("=== Configure SDL2 ===")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/SDL EXCLUDE_FROM_ALL)
2023-05-01 21:02:43 +00:00
2023-05-02 19:33:02 +00:00
message("=== Configure Corrade ===")
set(CORRADE_BUILD_STATIC ON CACHE BOOL "" FORCE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/corrade EXCLUDE_FROM_ALL)
2023-05-01 16:24:56 +00:00
2023-05-02 19:33:02 +00:00
message("=== Configure Magnum ===")
# Add Magnum as a subproject, enable Sdl2Application
set(MAGNUM_BUILD_STATIC ON CACHE BOOL "" FORCE)
2023-05-03 09:57:23 +00:00
set(MAGNUM_WITH_SDL2APPLICATION ON CACHE BOOL "" FORCE)
# hack to force magnum to link against static sdl
add_library(SDL2::SDL2 ALIAS SDL2-static)
2023-05-02 19:33:02 +00:00
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/magnum EXCLUDE_FROM_ALL)
message("=== Configure QuickJS ===")
2023-05-01 16:24:56 +00:00
# add quickjs
set(quickjs_version 2021-03-27)
set(quickjs_sources_root ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/quickjs)
set(quickjs_sources
${quickjs_sources_root}/quickjs.h
${quickjs_sources_root}/quickjs-libc.h
${quickjs_sources_root}/quickjs.c
${quickjs_sources_root}/libregexp.c
${quickjs_sources_root}/libunicode.c
${quickjs_sources_root}/libbf.c
${quickjs_sources_root}/cutils.c
${quickjs_sources_root}/quickjs-libc.c
)
add_library(quickjs STATIC
${quickjs_sources}
)
target_compile_definitions(quickjs
PRIVATE
CONFIG_VERSION="${quickjs_version}"
)
target_include_directories(quickjs
PRIVATE
${quickjs_sources_root}
)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
2023-05-03 22:01:55 +00:00
file(GLOB files src/*.cpp)
2023-05-02 19:33:02 +00:00
add_executable(${CMAKE_PROJECT_NAME} ${files})
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE include)
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE src)
2023-05-03 22:01:55 +00:00
target_link_libraries(${CMAKE_PROJECT_NAME} Magnum::Magnum Magnum::GL Magnum::Sdl2Application Magnum::Shaders quickjs)