diff --git a/belmont/bin/winter.gdextension b/belmont/bin/winter.gdextension index e1679d0..385b754 100644 --- a/belmont/bin/winter.gdextension +++ b/belmont/bin/winter.gdextension @@ -8,7 +8,7 @@ compatibility_minimum = "4.1" windows.debug.x86_32 = "res://bin/winter-x86-debug.dll" windows.release.x86_32 = "res://bin/winter-x86-release.dll" windows.debug.x86_64 = "res://bin/winter-x64-debug.dll" -windows.release.x86_64 = "res://bin/winter-x64-debug.dll" +windows.release.x86_64 = "res://bin/winter-x64-release.dll" linux.debug.x86_64 = "res://bin/winter-x64-debug.so" linux.release.x86_64 = "res://bin/winter-x64-release.so" linux.debug.x86_32 = "res://bin/winter-x86-debug.so" diff --git a/winter/CMakeLists.txt b/winter/CMakeLists.txt index 83d9a5c..2fcc758 100644 --- a/winter/CMakeLists.txt +++ b/winter/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.20) set(CMAKE_CXX_STANDARD 20) project("winter" VERSION 1.0 LANGUAGES CXX) +message("CMake Version: " ${CMAKE_VERSION}) if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) message(FATAL_ERROR "In-source builds are not supported. Please choose a different binary directory.") return() @@ -20,64 +21,5 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") endif() set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) -#include("${CMAKE_CURRENT_SOURCE_DIR}/AdastralCMakeConfig.cmake") -#get_property(AD_CMAKE_RELPATH GLOBAL PROPERTY AD_CMAKE_RELPATH) -#get_property(AD_CMAKE_RELPATH_CODE GLOBAL PROPERTY AD_CMAKE_RELPATH_CODE) -# -# Required to find cmake modules like 'FindDirectX.cmake' -#set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/${AD_CMAKE_RELPATH}") -#include("Code/BuildSystem/CMake/adUtils.cmake") -# -#file(RELATIVE_PATH AD_SUBMODULE_PREFIX_PATH ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) -#set_property(GLOBAL PROPERTY AD_SUBMODULE_PREFIX_PATH ${AD_SUBMODULE_PREFIX_PATH}) -# -#if(AD_SUBMODULE_PREFIX_PATH STREQUAL "") -# set(AD_SUBMODULE_MODE FALSE) -#else() -# set(AD_SUBMODULE_MODE TRUE) -#endif() -# -#set_property(GLOBAL PROPERTY AD_SUBMODULE_MODE ${AD_SUBMODULE_MODE}) -# -#ad_build_filter_init() -# -#if(NOT AD_SUBMODULE_MODE) -# ad_detect_languages() - -#endif() -# -#ad_set_build_types() -#ad_check_build_type() -#ad_write_configuration_txt() -# -#if(AD_CUSTOM_TOOLCHAIN_FILE) -# message(STATUS "Including AD_CUSTOM_TOOLCHAIN_FILE: '${AD_CUSTOM_TOOLCHAIN_FILE}'") -# include("${AD_CUSTOM_TOOLCHAIN_FILE}") -#endif() -# -#ad_pull_all_vars() -# -#include("adPlatformVars") -# -#set(AD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") -# -#ad_init_projects() -#add_link_options(" -fno-use-linker-plugin") -#add_compile_options("/p:CLToolPath=C:\\ProgramData\\chocolatey\\lib\\sccache\\tools\\sccache-v0.7.4-x86_64-pc-windows-msvc\\sccache.exe") -add_subdirectory(Code) - -#ad_finalize_projects() -# -# -#get_property(EXPORT_PROJECTS GLOBAL PROPERTY "EXPORT_PROJECTS") -#export(TARGETS ${EXPORT_PROJECTS} FILE "${AD_OUTPUT_DIRECTORY_DLL}/AdastralExport.cmake") -# -#set(EXPORT_INFO " -#set(EXPINP_OUTPUT_DIRECTORY_DLL ${AD_OUTPUT_DIRECTORY_DLL}) -#set(EXPINP_OUTPUT_DIRECTORY_LIB ${AD_OUTPUT_DIRECTORY_LIB}) -#set(EXPINP_BINARY_DIR ${CMAKE_BINARY_DIR}) -#set(EXPINP_SOURCE_DIR ${CMAKE_SOURCE_DIR}) -#") -# -#file(WRITE "${AD_OUTPUT_DIRECTORY_DLL}/AdastralExportInfo.cmake" ${EXPORT_INFO}) +add_subdirectory(Code) \ No newline at end of file diff --git a/winter/Code/binding/CMakeLists.txt b/winter/Code/binding/CMakeLists.txt index 8be12d6..f207f6b 100644 --- a/winter/Code/binding/CMakeLists.txt +++ b/winter/Code/binding/CMakeLists.txt @@ -23,13 +23,42 @@ add_library(${PROJECT_NAME} SHARED binding.cpp register_types.cpp) target_include_directories(${PROJECT_NAME} PUBLIC ../palace) target_include_directories(${PROJECT_NAME} PUBLIC ../shared) -set_target_properties(${PROJECT_NAME} - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib/" - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib/" - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib/" - OUTPUT_NAME "winter-x64-debug" # make this suck less later -) +if (CMAKE_SIZE_OF_VOID_P EQUAL 4) + set(WINTER_ARCHITECTURE x86) +else() + set(WINTER_ARCHITECTURE x64) +endif() + +FOREACH(config ${CMAKE_CONFIGURATION_TYPES}) + string(TOLOWER ${config} CONFIG_LOWER) + string(TOUPPER ${config} CONFIG_UPPER) + set_target_properties(${PROJECT_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/../belmont/bin + LIBRARY_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/../belmont/bin + ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/../belmont/bin + ${CONFIG_UPPER}_OUTPUT_NAME winter-${WINTER_ARCHITECTURE}-${CONFIG_LOWER}) +ENDFOREACH(config) + +if (DEFINED CMAKE_BUILD_TYPE) + message("Setup custom build type: " ${CMAKE_BUILD_TYPE}) + string(TOLOWER ${CMAKE_BUILD_TYPE} CONFIG_LOWER) + string(TOUPPER ${CMAKE_BUILD_TYPE} CONFIG_UPPER) + set_target_properties(${PROJECT_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../belmont/bin + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../belmont/bin + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../belmont/bin + OUTPUT_NAME winter-${WINTER_ARCHITECTURE}-${CONFIG_LOWER}) + + set_target_properties(${PROJECT_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/../belmont/bin + LIBRARY_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/../belmont/bin + ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/../belmont/bin + ${CONFIG_UPPER}_OUTPUT_NAME winter-${WINTER_ARCHITECTURE}-${CONFIG_LOWER}) +endif() + IF (WIN32) target_link_libraries(${PROJECT_NAME} PUBLIC shared nlohmann_json::nlohmann_json godot::cpp palace) ELSE ()