Skip to content

Commit

Permalink
Editor, with scene, geometry and texture plugins (#974)
Browse files Browse the repository at this point in the history
* Update sol2 to the latest update.
* optionally enable editor builds
  • Loading branch information
nemerle authored Nov 21, 2022
1 parent 0549851 commit bccea0b
Show file tree
Hide file tree
Showing 34 changed files with 6,948 additions and 4,761 deletions.
4 changes: 3 additions & 1 deletion 3rd_party/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,6 @@ endif()
include(ExternalProject_LUA.cmake)
include(ExternalProject_SOL2.cmake)
include(ExternalProject_JCON.cmake)
#include(ExternalProject_SegsEngine.cmake) Temporarily commented out as failing to build
if(BUILD_EDITOR)
include(ExternalProject_SegsEngine.cmake)
endif()
88 changes: 43 additions & 45 deletions 3rd_party/ExternalProject_SegsEngine.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
set(SegsEngine_RELEASE 4.0.0.14)
set(SegsEngine_RELEASE 4.0.0.16)
set(build_from_source ON)
if(MSVC)
set(build_from_source OFF)
Expand All @@ -16,60 +16,58 @@ if(build_from_source)
CMAKE_GENERATOR_TOOLSET ${CMAKE_GENERATOR_TOOLSET}
BUILD_BYPRODUCTS ${SegsEngine_LIBRARY_STATIC}
)
else()
check_and_update_binary_deps(SegsEngine SegsEngine ${PROJECT_SOURCE_DIR}/3rd_party/prebuilt ${SegsEngine_RELEASE})
endif()

add_library(SegsEngine::EASTL_Import INTERFACE IMPORTED)
file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/include/SegsEngine)
file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin)
file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/lib)
add_library(SegsEngine::EASTL_Import INTERFACE IMPORTED)
file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/include/SegsEngine)
file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin)
file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/lib)

set_target_properties(SegsEngine::EASTL_Import PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "EASTL_USER_CONFIG_HEADER=\"EASTL/SegsEngine_config.h\""
INTERFACE_INCLUDE_DIRECTORIES "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/include"
set_target_properties(SegsEngine::EASTL_Import PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "EASTL_USER_CONFIG_HEADER=\"EASTL/SegsEngine_config.h\""
INTERFACE_INCLUDE_DIRECTORIES "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/include"

)
)

add_executable(SegsEngine::binding_generator IMPORTED GLOBAL)
add_dependencies(SegsEngine::binding_generator editor_engine-${SegsEngine_RELEASE})
add_executable(SegsEngine::binding_generator IMPORTED GLOBAL)
add_dependencies(SegsEngine::binding_generator editor_engine-${SegsEngine_RELEASE})

add_library(SegsEngine::editor_engine SHARED IMPORTED GLOBAL)
add_dependencies(SegsEngine::editor_engine editor_engine-${SegsEngine_RELEASE})
add_library(SegsEngine::editor_engine SHARED IMPORTED GLOBAL)
add_dependencies(SegsEngine::editor_engine editor_engine-${SegsEngine_RELEASE})

# Create imported target SegsEngine::editor_interface
add_library(SegsEngine::editor_interface INTERFACE IMPORTED)

set_target_properties(SegsEngine::editor_interface PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "TOOLS_ENABLED;DEBUG_ENABLED"
INTERFACE_INCLUDE_DIRECTORIES "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/include/SegsEngine;${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/include/"
INTERFACE_LINK_LIBRARIES "Qt5::Core;SegsEngine::EASTL_Import"
)
set_property(TARGET SegsEngine::editor_engine APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
if(WIN32)
set_target_properties(SegsEngine::binding_generator PROPERTIES
IMPORTED_LOCATION "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin/binding_generator.exe"
)
set_target_properties(SegsEngine::editor_engine PROPERTIES
IMPORTED_LOCATION_DEBUG "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin/editor_engine.dll"
IMPORTED_IMPLIB "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/lib/editor_engine.lib"
IMPORTED_SONAME_DEBUG "libeditor_engine.so"
INTERFACE_LINK_LIBRARIES "SegsEngine::editor_interface"
)
else()
set_target_properties(SegsEngine::binding_generator PROPERTIES
IMPORTED_LOCATION "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin/binding_generator"
)
set_target_properties(SegsEngine::editor_engine PROPERTIES
IMPORTED_LOCATION_DEBUG "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin/libeditor_engine.so"
IMPORTED_SONAME_DEBUG "libeditor_engine.so"
INTERFACE_LINK_LIBRARIES "SegsEngine::editor_interface"
)
endif()
# Create imported target SegsEngine::editor_interface
add_library(SegsEngine::editor_interface INTERFACE IMPORTED)

set_target_properties(SegsEngine::editor_interface PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "TOOLS_ENABLED;DEBUG_ENABLED"
INTERFACE_INCLUDE_DIRECTORIES "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/include/SegsEngine;${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/include/"
INTERFACE_LINK_LIBRARIES "Qt5::Core;SegsEngine::EASTL_Import"
)
set_property(TARGET SegsEngine::editor_engine APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
if(WIN32)
set_target_properties(SegsEngine::binding_generator PROPERTIES
IMPORTED_LOCATION "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin/binding_generator.exe"
)
set_target_properties(SegsEngine::editor_engine PROPERTIES
IMPORTED_LOCATION_DEBUG "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin/editor_engine.dll"
IMPORTED_IMPLIB "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/lib/editor_engine.lib"
IMPORTED_SONAME_DEBUG "libeditor_engine.so"
INTERFACE_LINK_LIBRARIES "SegsEngine::editor_interface"
)
else()

check_and_update_binary_deps(SegsEngine SegsEngine ${PROJECT_SOURCE_DIR}/3rd_party/prebuilt ${SegsEngine_RELEASE})

set_target_properties(SegsEngine::binding_generator PROPERTIES
IMPORTED_LOCATION "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin/binding_generator"
)
set_target_properties(SegsEngine::editor_engine PROPERTIES
IMPORTED_LOCATION_DEBUG "${PROJECT_SOURCE_DIR}/3rd_party/prebuilt/bin/libeditor_engine.so"
IMPORTED_SONAME_DEBUG "libeditor_engine.so"
INTERFACE_LINK_LIBRARIES "SegsEngine::editor_interface"
)
endif()


###########################################################################################
macro(set_engine_plugin_options )
set(oneValueArgs NAME CLASSPROP TYPE SHARED DISABLED)
Expand Down
2 changes: 1 addition & 1 deletion 3rd_party/lua_sol2/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ install(TARGETS lua_sol2 EXPORT lua_sol2 DESTINATION lib) # ignored
install(EXPORT lua_sol2 FILE lua_sol2-config.cmake DESTINATION share/cmake/lua_sol2)
install(FILES include/sol/sol.hpp DESTINATION include/sol)
install(FILES include/sol/config.hpp DESTINATION include/sol)
install(FILES include/sol/sol_forward.hpp DESTINATION include/sol)
install(FILES include/sol/forward.hpp DESTINATION include/sol)
4 changes: 2 additions & 2 deletions 3rd_party/lua_sol2/include/sol/config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

// This file was generated with a script.
// Generated 2020-10-03 21:34:25.034794 UTC
// This header was generated with sol v3.2.1 (revision 48eea7b5)
// Generated 2022-06-25 08:14:19.336233 UTC
// This header was generated with sol v3.3.0 (revision eba86625)
// https://github.com/ThePhD/sol2

#ifndef SOL_SINGLE_CONFIG_HPP
Expand Down
Loading

0 comments on commit bccea0b

Please sign in to comment.