Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -553,19 +553,25 @@ jobs:
cmake-source-path-has-spaces:
if: github.repository_owner == 'aws'
name:
"Spaces in path (CMake) - ${{ matrix.os }}"
"Spaces in path (CMake) - ${{ matrix.os }} - pregen-src: ${{ matrix.pregen_src }}"
runs-on: ${{ matrix.os }}
env:
AWS_LC_SYS_CMAKE_BUILDER: 1
AWS_LC_SYS_NO_PREGENERATED_SRC: ${{ matrix.pregen_src }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-13, macos-14-xlarge ]
pregen_src: [ 0, 1 ]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
path: "path has spaces/aws-lc-rs"
- if: ${{ matrix.pregen_src == 1 }}
shell: bash
run: |
rm -rf ./aws-lc-sys/aws-lc/generated-src/*
- if: ${{ matrix.os == 'windows-latest' }}
uses: ilammy/setup-nasm@v1
- uses: dtolnay/rust-toolchain@stable
Expand Down
2 changes: 2 additions & 0 deletions aws-lc-sys/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ include = [
"/aws-lc/**/CMakeLists.txt",
"/aws-lc/**/*.cmake",
"/aws-lc/**/*.errordata",
"/aws-lc/**/err_data_generate.go",
"/aws-lc/**/*.lds",
"!/aws-lc/bindings/**",
"!/aws-lc/docs/**",
Expand All @@ -39,6 +40,7 @@ include = [
"/CMakeLists.txt",
"/builder/**/*.rs",
"/builder/**/*.bat",
"/builder/**/*.sh",
"/builder/**/*.obj",
"/Cargo.toml",
"/generated-include/**",
Expand Down
17 changes: 12 additions & 5 deletions aws-lc-sys/builder/cmake_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ use crate::cc_builder::CcBuilder;
use crate::OutputLib::{Crypto, RustWrapper, Ssl};
use crate::{
allow_prebuilt_nasm, cargo_env, effective_target, emit_warning, execute_command,
get_crate_cflags, is_crt_static, is_no_asm, option_env, target_arch, target_env, target_os,
target_underscored, target_vendor, test_nasm_command, use_prebuilt_nasm, OutputLibType,
get_crate_cflags, is_crt_static, is_no_asm, is_no_pregenerated_src, option_env, target_arch,
target_env, target_os, target_underscored, target_vendor, test_nasm_command, use_prebuilt_nasm,
OutputLibType,
};
use std::env;
use std::ffi::OsString;
Expand Down Expand Up @@ -111,9 +112,15 @@ impl CmakeBuilder {
} else {
cmake_cfg.define("BUILD_LIBSSL", "OFF");
}
// Build flags that minimize our dependencies.
cmake_cfg.define("DISABLE_PERL", "ON");
cmake_cfg.define("DISABLE_GO", "ON");
if is_no_pregenerated_src() {
// Go and Perl will be required.
cmake_cfg.define("DISABLE_PERL", "OFF");
cmake_cfg.define("DISABLE_GO", "OFF");
} else {
// Build flags that minimize our dependencies.
cmake_cfg.define("DISABLE_PERL", "ON");
cmake_cfg.define("DISABLE_GO", "ON");
}

if is_no_asm() {
let opt_level = cargo_env("OPT_LEVEL");
Expand Down
19 changes: 18 additions & 1 deletion aws-lc-sys/builder/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ fn get_builder(prefix: &Option<String>, manifest_dir: &Path, out_dir: &Path) ->
))
};

if let Some(val) = env_var_to_bool("AWS_LC_SYS_CMAKE_BUILDER") {
if let Some(val) = is_cmake_builder() {
let builder: Box<dyn Builder> = if val {
cmake_builder_builder()
} else {
Expand Down Expand Up @@ -420,6 +420,8 @@ static mut AWS_LC_SYS_EXTERNAL_BINDGEN: bool = false;
static mut AWS_LC_SYS_NO_ASM: bool = false;
static mut AWS_LC_SYS_CFLAGS: String = String::new();
static mut AWS_LC_SYS_PREBUILT_NASM: Option<bool> = None;
static mut AWS_LC_SYS_CMAKE_BUILDER: Option<bool> = None;
static mut AWS_LC_SYS_NO_PREGENERATED_SRC: bool = false;

static mut AWS_LC_SYS_C_STD: CStdRequested = CStdRequested::None;

Expand All @@ -434,6 +436,9 @@ fn initialize() {
AWS_LC_SYS_CFLAGS = option_env("AWS_LC_SYS_CFLAGS").unwrap_or_default();
AWS_LC_SYS_PREBUILT_NASM = env_var_to_bool("AWS_LC_SYS_PREBUILT_NASM");
AWS_LC_SYS_C_STD = CStdRequested::from_env();
AWS_LC_SYS_CMAKE_BUILDER = env_var_to_bool("AWS_LC_SYS_CMAKE_BUILDER");
AWS_LC_SYS_NO_PREGENERATED_SRC =
env_var_to_bool("AWS_LC_SYS_NO_PREGENERATED_SRC").unwrap_or(false);
}

if !is_external_bindgen() && (is_pregenerating_bindings() || !has_bindgen_feature()) {
Expand Down Expand Up @@ -495,6 +500,18 @@ fn is_no_asm() -> bool {
unsafe { AWS_LC_SYS_NO_ASM }
}

fn is_cmake_builder() -> Option<bool> {
if is_no_pregenerated_src() {
Some(true)
} else {
unsafe { AWS_LC_SYS_CMAKE_BUILDER }
}
}

fn is_no_pregenerated_src() -> bool {
unsafe { AWS_LC_SYS_NO_PREGENERATED_SRC }
}

#[allow(unknown_lints)]
#[allow(static_mut_refs)]
fn get_crate_cflags() -> &'static str {
Expand Down
Loading