save state
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
# D:\Dev\Mosis\MosisService\designer\CMakeLists.txt
|
||||
cmake_minimum_required(VERSION 3.22.1)
|
||||
project(mosis-designer)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# Find Lua before RmlUi so it can be used
|
||||
find_package(Lua REQUIRED)
|
||||
|
||||
# Find other dependencies via vcpkg
|
||||
# Find dependencies via vcpkg
|
||||
find_package(glfw3 CONFIG REQUIRED)
|
||||
find_package(freetype CONFIG REQUIRED)
|
||||
find_package(PNG REQUIRED)
|
||||
find_package(Lua REQUIRED)
|
||||
find_package(glad CONFIG REQUIRED)
|
||||
find_package(nlohmann_json CONFIG REQUIRED)
|
||||
|
||||
# Fetch RmlUi
|
||||
@@ -20,80 +20,68 @@ FetchContent_Declare(
|
||||
GIT_REPOSITORY https://github.com/mikke89/RmlUi.git
|
||||
GIT_TAG 6.0
|
||||
)
|
||||
|
||||
# Enable RmlUi Lua bindings before fetching
|
||||
set(RMLUI_LUA_BINDINGS ON CACHE BOOL "" FORCE)
|
||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
||||
set(RMLUI_SAMPLES OFF CACHE BOOL "" FORCE)
|
||||
set(RMLUI_TESTS OFF CACHE BOOL "" FORCE)
|
||||
set(RMLUI_FONT_ENGINE "freetype" CACHE STRING "" FORCE)
|
||||
|
||||
FetchContent_MakeAvailable(rmlui)
|
||||
|
||||
# Get the RmlUi source directory for backend sources
|
||||
FetchContent_GetProperties(rmlui)
|
||||
set(RMLUI_SOURCE_DIR ${rmlui_SOURCE_DIR})
|
||||
# Get glad include directories explicitly
|
||||
get_target_property(GLAD_INCLUDE_DIRS glad::glad INTERFACE_INCLUDE_DIRECTORIES)
|
||||
|
||||
# Shared kernel library sources (platform-agnostic code)
|
||||
set(KERNEL_SOURCES
|
||||
../src/main/kernel/src/platform.cpp
|
||||
../src/main/kernel/src/file_interface.cpp
|
||||
# Shared kernel library (platform-agnostic code from MosisService)
|
||||
add_library(mosis-kernel STATIC
|
||||
../src/main/cpp/RmlUi_Renderer_GL3.cpp
|
||||
)
|
||||
|
||||
# Desktop platform sources
|
||||
set(DESIGNER_SOURCES
|
||||
src/main.cpp
|
||||
src/desktop_platform.cpp
|
||||
src/hot_reload.cpp
|
||||
src/data_models.cpp
|
||||
src/kernel_impl.cpp
|
||||
src/testing/action_recorder.cpp
|
||||
src/testing/action_player.cpp
|
||||
src/testing/ui_inspector.cpp
|
||||
src/testing/visual_capture.cpp
|
||||
# RmlUi backend sources
|
||||
${RMLUI_SOURCE_DIR}/Backends/RmlUi_Backend_GLFW_GL3.cpp
|
||||
${RMLUI_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.cpp
|
||||
${RMLUI_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.cpp
|
||||
target_include_directories(mosis-kernel PUBLIC
|
||||
../src/main/kernel/include
|
||||
../src/main/cpp
|
||||
${GLAD_INCLUDE_DIRS}
|
||||
${LUA_INCLUDE_DIR}
|
||||
)
|
||||
target_link_libraries(mosis-kernel PUBLIC
|
||||
rmlui
|
||||
rmlui_lua
|
||||
${LUA_LIBRARIES}
|
||||
glad::glad
|
||||
)
|
||||
target_include_directories(mosis-kernel PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
)
|
||||
target_compile_definitions(mosis-kernel PUBLIC
|
||||
MOSIS_PLATFORM_DESKTOP
|
||||
# Use our wrapper header that sets up RMLUI_SHADER_HEADER_VERSION before including glad
|
||||
RMLUI_GL3_CUSTOM_LOADER="glad_loader.h"
|
||||
)
|
||||
|
||||
# Designer executable
|
||||
add_executable(mosis-designer
|
||||
${KERNEL_SOURCES}
|
||||
${DESIGNER_SOURCES}
|
||||
main.cpp
|
||||
src/desktop_platform.cpp
|
||||
src/desktop_file_interface.cpp
|
||||
src/hot_reload.cpp
|
||||
src/platform_singleton.cpp
|
||||
)
|
||||
|
||||
target_include_directories(mosis-designer PRIVATE
|
||||
src
|
||||
../src/main/kernel/include
|
||||
${RMLUI_SOURCE_DIR}
|
||||
${RMLUI_SOURCE_DIR}/Backends
|
||||
${LUA_INCLUDE_DIR}
|
||||
../src/main/cpp
|
||||
)
|
||||
|
||||
target_link_libraries(mosis-designer PRIVATE
|
||||
mosis-kernel
|
||||
glad::glad
|
||||
glfw
|
||||
freetype
|
||||
PNG::PNG
|
||||
RmlUi::RmlUi
|
||||
RmlUi::Lua
|
||||
nlohmann_json::nlohmann_json
|
||||
)
|
||||
|
||||
target_compile_definitions(mosis-designer PRIVATE
|
||||
MOSIS_PLATFORM_DESKTOP
|
||||
RMLUI_STATIC_LIB
|
||||
)
|
||||
|
||||
# Platform-specific libraries
|
||||
# Windows-specific
|
||||
if(WIN32)
|
||||
target_link_libraries(mosis-designer PRIVATE opengl32)
|
||||
elseif(APPLE)
|
||||
find_library(OPENGL_LIBRARY OpenGL)
|
||||
target_link_libraries(mosis-designer PRIVATE ${OPENGL_LIBRARY})
|
||||
else()
|
||||
find_package(OpenGL REQUIRED)
|
||||
target_link_libraries(mosis-designer PRIVATE OpenGL::GL)
|
||||
endif()
|
||||
|
||||
# Copy assets for development
|
||||
|
||||
Reference in New Issue
Block a user