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

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mfdeveloper
Copy link

@mfdeveloper mfdeveloper commented Mar 11, 2024

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.
  • New feature. A non-breaking change which adds functionality.
  • Other, such as a build process or documentation change.

@mfdeveloper mfdeveloper force-pushed the feature/cmake-preset-from-file branch 4 times, most recently from 4de4230 to 9782648 Compare March 13, 2024 22:18
* Add --generator flag that adds -G arg to cmake CLI
@mfdeveloper mfdeveloper force-pushed the feature/cmake-preset-from-file branch from 6486a85 to 03888e6 Compare August 13, 2024 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant