Files
simian/CMakeLists.txt
2025-11-06 15:51:47 +13:00

96 lines
2.3 KiB
CMake

cmake_minimum_required(VERSION 3.25)
project(SimianProject)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# -------------------------
# 1️⃣ Raylib (submodule)
# -------------------------
add_subdirectory(external/raylib)
# -------------------------
# 2️⃣ AngelScript (submodule)
# -------------------------
add_subdirectory(external/angelscript/sdk/angelscript/projects/cmake)
# -------------------------
# 3️⃣ scriptstdstring add-on
# -------------------------
add_library(scriptstdstring STATIC
external/angelscript/sdk/add_on/scriptstdstring/scriptstdstring.cpp
)
target_include_directories(scriptstdstring
PUBLIC external/angelscript/sdk/angelscript/include
)
# ------------------------
# debugger add-on
# ------------------------
add_library(debugger STATIC
external/angelscript/sdk/add_on/debugger/debugger.cpp
)
target_include_directories(debugger PUBLIC
external/angelscript/sdk/angelscript/include
)
# -------------------------
# scriptbuilder add-on
# -------------------------
add_library(scriptbuilder STATIC
external/angelscript/sdk/add_on/scriptbuilder/scriptbuilder.cpp
)
target_include_directories(scriptbuilder
PUBLIC external/angelscript/sdk/angelscript/include
)
# -------------------------
# Main executable
# -------------------------
add_executable(simian
main.cpp
src/Application.cpp
src/ScriptEngine.cpp
src/ScriptBindings.cpp
src/HotReload.cpp
src/log/log.c
)
target_include_directories(simian PUBLIC
include
src/log
external/raylib/src
external/angelscript/sdk/angelscript/include
external/angelscript/sdk/add_on/scriptstdstring
external/angelscript/sdk/add_on/scriptbuilder
external/angelscript/sdk/add_on/debugger
)
target_link_libraries(simian
raylib
angelscript
scriptstdstring
scriptbuilder
debugger
)
# -------------------------
# 5️⃣ Platform-specific linking
# -------------------------
if(WIN32)
target_link_libraries(simian winmm gdi32)
elseif(UNIX)
# Linux / macOS: Raylib handles system libs automatically
endif()
# -------------------------
# 6️⃣ Optional: Compile flags
# -------------------------
if(MSVC)
target_compile_options(simian PRIVATE /W4 /EHsc)
else()
target_compile_options(simian PRIVATE -Wall -Wextra -pedantic)
endif()
# -------------------------