96 lines
2.3 KiB
CMake
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()
|
|
# ------------------------- |