add foreign_cc deps to cmake prefix path (#1311)

This commit is contained in:
Matt Smith 2024-11-01 08:41:51 -07:00 committed by GitHub
parent e67c45c8db
commit 6e542304f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 9 additions and 7 deletions

View File

@ -12,11 +12,9 @@ _CACHE_ENTRIES = {
"BUILD_CURL_EXE": "off",
"BUILD_SHARED_LIBS": "off",
"CMAKE_BUILD_TYPE": "RELEASE",
"CMAKE_PREFIX_PATH": "$$EXT_BUILD_DEPS/openssl",
"CMAKE_USE_OPENSSL": "on",
# TODO: ldap should likely be enabled
"CURL_DISABLE_LDAP": "on",
"OPENSSL_ROOT_DIR": "$$EXT_BUILD_DEPS/openssl",
}
_MACOS_CACHE_ENTRIES = dict(_CACHE_ENTRIES.items() + {

View File

@ -13,7 +13,6 @@ _CACHE_ENTRIES = {
"BUILD_EXAMPLES": "off",
"BUILD_FUZZERS": "off",
"BUILD_SHARED_LIBS": "off",
"CMAKE_PREFIX_PATH": "$$EXT_BUILD_DEPS/pcre;$$EXT_BUILD_DEPS/openssl;$$EXT_BUILD_DEPS/libssh2;$$EXT_BUILD_DEPS/zlib;$${CMAKE_PREFIX_PATH:-}",
#"EMBED_SSH_PATH": "$(location @libssh2//:libssh2)",
"USE_HTTPS": "on",
}

View File

@ -13,7 +13,6 @@ _CACHE_ENTRIES = {
"BUILD_SHARED_LIBS": "off",
"BUILD_TESTING": "off",
"CMAKE_FIND_DEBUG_MODE": "on",
"CMAKE_PREFIX_PATH": "$${CMAKE_PREFIX_PATH:-};$$EXT_BUILD_DEPS/openssl",
}
_LINUX_CACHE_ENTRIES = dict(_CACHE_ENTRIES.items() + {

View File

@ -271,6 +271,7 @@ def _create_configure_script(configureParameters):
cmake_prefix = prefix,
include_dirs = inputs.include_dirs,
is_debug_mode = is_debug_mode(ctx),
ext_build_dirs = inputs.ext_build_dirs,
)
return configure_script

View File

@ -58,7 +58,8 @@ def create_cmake_script(
cmake_commands,
include_dirs = [],
cmake_prefix = None,
is_debug_mode = True):
is_debug_mode = True,
ext_build_dirs = []):
"""Constructs CMake script to be passed to cc_external_rule_impl.
Args:
@ -81,12 +82,13 @@ def create_cmake_script(
include_dirs: Optional additional include directories. Defaults to [].
cmake_prefix: Optional prefix before the cmake command (without the trailing space).
is_debug_mode: If the compilation mode is `debug`. Defaults to True.
ext_build_dirs: A list of gen_dirs for each foreign_cc dep.
Returns:
list: Lines of bash which make up the build script
"""
merged_prefix_path = _merge_prefix_path(user_cache, include_dirs)
merged_prefix_path = _merge_prefix_path(user_cache, include_dirs, ext_build_dirs)
toolchain_dict = _fill_crossfile_from_toolchain(workspace_name, tools, flags)
params = None
@ -171,9 +173,12 @@ def _wipe_empty_values(cache, keys_with_empty_values_in_user_cache):
cache.pop(key)
# From CMake documentation: ;-list of directories specifying installation prefixes to be searched...
def _merge_prefix_path(user_cache, include_dirs):
def _merge_prefix_path(user_cache, include_dirs, ext_build_dirs):
user_prefix = user_cache.get("CMAKE_PREFIX_PATH")
values = ["$$EXT_BUILD_DEPS$$"] + include_dirs
for ext_dir in ext_build_dirs:
values.append("$$EXT_BUILD_DEPS$$/{}".format(ext_dir.basename))
if user_prefix != None:
# remove it, it is gonna be merged specifically
user_cache.pop("CMAKE_PREFIX_PATH")