firebase-unity-sdk icon indicating copy to clipboard operation
firebase-unity-sdk copied to clipboard

[Python build] Add --preset arg to generated cmake CLI

Open mfdeveloper opened this issue 11 months ago • 0 comments

Description

  • Add --preset arg to cmake CLI.

    The scripts/build_scripts/build_zips.py verify if at least one of files: CMakePresets.json or CMakeUserPresets.json exists, and lookup the first preset name that starts with firebase-sdk-unity. That configuration file is used by cmake build (e.g define cache and/or environment variables).

    Optionally, you can pass a custom preset name to the build script with: --preset arg:

     python ./scripts/build_scripts/build_zips.py --preset=my-custom-preset --platform=windows
    
  • Add --generator flag that adds -G arg to cmake CLI

    If you're using Visual Studio 2022, now you can override the default Visual Studio 2019 generator with --generator flag:

     python ./scripts/build_scripts/build_zips.py --generator='Visual Studio 17 2022' --platform=windows
    

This PR is related with #646, that mention the usage of cmakesettings.json, which one is deprecated!


Testing

  1. Clone or download this repo
  2. Locally, add a file CMakePresets.json or CMakeUserPresets.json to the repo root path, like the example below:
{
  "version": 3,
  // Your local cmake CLI version (optional)
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 22,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "firebase-unity-sdk-default",
      "displayName": "Firebase Unity SDK x64 Debug",
      "description": "Sets Ninja generator, compilers, x64 architecture, build and install directory, debug build type",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/out/build/${presetName}",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
        "UNITY_ROOT_DIR": "[YOUR_UNITY_EDITOR_PATH]",
        "UNITY_CSHARP_BUILD_EXE": "[YOUR_UNITY_XBUILD_PATH_FILE]",
        "UNITY_MONO_EXE": "[YOUR_UNITY_MONO]",
        "MONO_EXE": "[GLOBAL_MONO]",
        "MONO_CSHARP_BUILD_EXE": "[YOUR_MONO_OR_MSBUILD]"
      },
      "environment": {
        "OPENSSL_ROOT_DIR": "[YOUR_OPENSSL_ROOT_DIR]",
        "OPENSSL_INCLUDE_DIR": "$env{OPENSSL_ROOT_DIR}/include/openssl",
        "OPENSSL_LIBRARIES": "$env{OPENSSL_ROOT_DIR}/lib",
        "OPENSSL_CRYPTO_LIBRARY": "$env{OPENSSL_ROOT_DIR}/lib/libcrypto.lib"
      }
    }
  ]
}
  1. Run the build_zips.py script
  python ./scripts/build_scripts/build_zips.py --platform=windows --targets=analytics

  # The generated cmake CLI should be:
  cmake_setup_args is: cmake [REPO_ROOT_PATH] --preset firebase-unity-sdk-[something] ...
  1. Add the --generator flag in order to customize your VS version
  python ./scripts/build_scripts/build_zips.py --generator='Visual Studio 17 2022' --platform=windows

Type of Change

Place an x the applicable box:

  • [ ] Bug fix. Add the issue # below if applicable.
  • [x] New feature. A non-breaking change which adds functionality.
  • [x] Other, such as a build process or documentation change.

mfdeveloper avatar Mar 11 '24 14:03 mfdeveloper