Skip to content

Commit

Permalink
add foreign_cc deps to cmake prefix path (#1311)
Browse files Browse the repository at this point in the history
  • Loading branch information
matt-sm authored Nov 1, 2024
1 parent e67c45c commit 6e54230
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 7 deletions.
2 changes: 0 additions & 2 deletions examples/third_party/curl/BUILD.curl.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -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() + {
Expand Down
1 change: 0 additions & 1 deletion examples/third_party/libgit2/BUILD.libgit2.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -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",
}
Expand Down
1 change: 0 additions & 1 deletion examples/third_party/libssh2/BUILD.libssh2.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -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() + {
Expand Down
1 change: 1 addition & 0 deletions foreign_cc/cmake.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
11 changes: 8 additions & 3 deletions foreign_cc/private/cmake_script.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
Expand Down Expand Up @@ -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")
Expand Down

0 comments on commit 6e54230

Please sign in to comment.