Godot version
4.5
godot-cpp version
4.5
System information
Windows 11
Issue description
Currently, the vcpkg version of godot-cpp is at 4.4. With a custom install step that is needed by vcpkg. We should integrate these changes into godot-cpp directly. I'm currently working on porting our custom godot-cpp-vcpkg fork to 4.5 and I'm facing some challanges since there have been some changes regarding CMake generator expression. I would like to update the vcpkg port, but I need some feedback first:
The current 4.4 patch alters several files, but I have moved the install code into a dedicated file and included it at the end of the main CMakeLists.txt via include("cmake/install.cmake") to make it easier to read.
My install.cmake now uses generator expressions
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
# Install the godot-cpp target
install(TARGETS godot-cpp
EXPORT unofficial-godot-cpp-config
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
)
install(
DIRECTORY
"${CMAKE_CURRENT_SOURCE_DIR}/include/"
"${CMAKE_CURRENT_BINARY_DIR}/gen/include/"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
install(FILES "${GODOTCPP_GDEXTENSION_DIR}/gdextension_interface.h"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
install(
EXPORT unofficial-godot-cpp-config
NAMESPACE unofficial::
DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-godot-cpp"
)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/unofficial-godot-cpp-config-version.cmake"
VERSION "${PROJECT_VERSION}"
COMPATIBILITY SameMinorVersion
)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-godot-cpp-config-version.cmake"
DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-godot-cpp"
)
The current 4.4 Portfile does not explicitly set GODOTCPP_TARGET, so I added:
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
"-DPython3_EXECUTABLE=${PYTHON3}"
OPTIONS_DEBUG
-DGODOTCPP_TARGET=template_debug
OPTIONS_RELEASE
-DGODOTCPP_TARGET=template_release
)
Not setting this resulted in 2 issues:
- File name was debug instead of release:
vcpkg-src\buildtrees\godot-cpp\x64-windows-rel\bin\libgodot-cpp.windows.template_debug.x86_64.lib
- File size was different, that is an indicator that
DEBUG_METHODS_ENABLED where enabled even if they should not be.
I faced similar issues like github.com/godotengine/godot/issues/64897 where my extension worked fine in debug but crashed on exit in release (Note we use Godot as embedded Library, so there are also some differences there).
Steps to reproduce
Minimal reproduction project
Godot version
4.5
godot-cpp version
4.5
System information
Windows 11
Issue description
Currently, the vcpkg version of godot-cpp is at
4.4. With a custom install step that is needed by vcpkg. We should integrate these changes into godot-cpp directly. I'm currently working on porting our custom godot-cpp-vcpkg fork to4.5and I'm facing some challanges since there have been some changes regarding CMake generator expression. I would like to update the vcpkg port, but I need some feedback first:The current 4.4 patch alters several files, but I have moved the install code into a dedicated file and included it at the end of the main
CMakeLists.txtviainclude("cmake/install.cmake")to make it easier to read.My
install.cmakenow uses generator expressionsThe current 4.4 Portfile does not explicitly set
GODOTCPP_TARGET, so I added:Not setting this resulted in 2 issues:
vcpkg-src\buildtrees\godot-cpp\x64-windows-rel\bin\libgodot-cpp.windows.template_debug.x86_64.libDEBUG_METHODS_ENABLEDwhere enabled even if they should not be.I faced similar issues like github.com/godotengine/godot/issues/64897 where my extension worked fine in debug but crashed on exit in release (Note we use Godot as embedded Library, so there are also some differences there).
Steps to reproduce
Minimal reproduction project