Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cherry-picks for the godot-cpp 4.3 branch - 2nd batch #1632

Merged
merged 13 commits into from
Oct 30, 2024

Commits on Oct 28, 2024

  1. Add support for LLVM/MinGW and ARM64 Windows builds.

    (cherry picked from commit f2353da)
    bruvzg authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    20459da View commit details
    Browse the repository at this point in the history
  2. Add hot reload support when building with GCC and CMake

    (cherry picked from commit 0557197)
    ytnuf authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    e52b4ea View commit details
    Browse the repository at this point in the history
  3. Add visibility-hidden

    This should make all symbols that are not marked otherwise have hidden
    visibility. There still may be exposed symbols if marked with respective
    attributes.
    
    (cherry picked from commit d18fa92)
    APokorny authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    fa0b4cf View commit details
    Browse the repository at this point in the history
  4. Add GODOT_SYMBOL_VISIBILITY cache variable to match scons interface.

    (cherry picked from commit 02bdc66)
    enetheru authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    b12aeb1 View commit details
    Browse the repository at this point in the history
  5. Updated all variable names to use GODOT_ prefix

    changed cache type for api file and api dir to FILEPATH and PATH respectively.
    Minor whitespace.
    docstring parity
    
    (cherry picked from commit 390a9a5)
    enetheru authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    daf8ac1 View commit details
    Browse the repository at this point in the history
  6. Correctly set instance bindings on reload

    (cherry picked from commit cb543c1)
    dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    5fe58bc View commit details
    Browse the repository at this point in the history
  7. Re-Structure cmake solution to be closer to the scons solution.

    This is just a single step, re-arranging the code without actually changing its functionality.
    
    new docs/cmake.md
    moved the block of comments from the start of the CMakeLists.txt into the cmake.md file and converted content to markdown.
    
    new cmake/godotcpp.cmake
    Moved all exposed options into a new function godotcpp_options()
    Moved configuration and generation code into godotcpp_generate()
    
    To get all the options into the godotcpp_options() I changed the logic of GODOT_USE_HOT_RELOAD which I believe is a closer match to scons, that if the options is not set, and the build type is not release, then it defaults to ON.
    
    I msvc builds require the default flags to be modified or it will throw errors. I have added the links to articles in the commit, but its about removing the runtime error checks /RTC1 from the CMAKE_CXX_FLAGS_DEBUG variable. This needs to happen before the files are included.
    https://stackoverflow.com/questions/74426638/how-to-remove-rtc1-from-specific-target-or-file-in-cmake
    https://discourse.cmake.org/t/how-do-i-remove-compile-options-from-target/5965
    
    Renamed GodotCompilerWarnings.cmake to common_compiler_flags.cmake to match scons
    
    Included files explicitly by path, as we dont need to append to the CMAKE_MODULES_PATH which effects the whole build tree.
    
    This prevents consumers of the library from clobbering the names of the cmake include files and breaking the build.
    
    (cherry picked from commit 2402a04)
    enetheru authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    2de650b View commit details
    Browse the repository at this point in the history
  8. update .gitignore to add .idea for the Jetbrains CLion IDE

    and also the default cmake build directory when building in clion cmake-build-*
    
    (cherry picked from commit 9f5daa2)
    enetheru authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    e751531 View commit details
    Browse the repository at this point in the history
  9. VSProj Configure type on build command - to resolve godotengine#1582

    Visual Studio projects are multi-config projects like Ninja-MultiConfig which means you can't set the configuration at configure time as there are multiple, it always chooses the first one by default when not specified in the build command.
    
    Instead of this:
    cmake -DCMAKE_BUILD_TYPE=Release -G"Visual Studio 17 2022" .
    cmake --build . --verbose
    
    It should be this
    cmake -G"Visual Studio 17 2022" .
    cmake --build . --verbose --config Release
    
    Update ci.yml
    
    Because the current build system doesnt use generator expressions for multi config builds, both the CMAKE_BUILD_TYPE and the build --config options need to be set
    
    (cherry picked from commit 07704f8)
    enetheru authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    a3d5d6d View commit details
    Browse the repository at this point in the history
  10. [SCons] Remove use_clang_cl windows flag in favor of generic use_llvm

    This is consistent with Godot upstream.
    
    (cherry picked from commit 4717a78)
    Faless authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    30a395b View commit details
    Browse the repository at this point in the history
  11. [SCons] Enable WASM_BIGINT in web builds

    Required since Godot 4.3, which is also the first Godot version with
    wide WASM gdnative support (previous versions were Chrome-only, and very
    brittle).
    
    (cherry picked from commit 78498da)
    Faless authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    af78f27 View commit details
    Browse the repository at this point in the history
  12. SCons: Don't cache librarys

    (cherry picked from commit 83c0f15)
    Repiteo authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    bf26191 View commit details
    Browse the repository at this point in the history
  13. Add p_use_model_front to Basis::looking_at()

    (cherry picked from commit 02fd535)
    Flarkk authored and dsnopek committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    94d7497 View commit details
    Browse the repository at this point in the history