fix(ci): attempt with universal binary flag
This commit is contained in:
parent
aa1aaeca99
commit
d83cf60f8e
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
|
@ -53,13 +53,13 @@ jobs:
|
|||
- name: Install cargo-make
|
||||
run: |
|
||||
cargo install --force cargo-make
|
||||
- name: Build
|
||||
run: |
|
||||
cargo make build-macos-arm-binary
|
||||
- name: Setup tmate session
|
||||
uses: mxschmitt/action-tmate@v3
|
||||
with:
|
||||
limit-access-to-actor: true
|
||||
- name: Build
|
||||
run: |
|
||||
cargo make build-macos-arm-binary
|
||||
- name: Debug
|
||||
run: |
|
||||
file target/aarch64-apple-darwin/debug/espanso
|
||||
|
|
|
@ -184,24 +184,6 @@ fn build_native() {
|
|||
// Because of a configuration problem on the GitHub CI pipeline,
|
||||
// we need to use a series of workarounds to build for M1 machines.
|
||||
// See: https://github.com/actions/virtual-environments/issues/3288#issuecomment-830207746
|
||||
let xcode_sdk_path = Command::new("xcrun")
|
||||
.args(&["--sdk", "macosx", "--show-sdk-path"])
|
||||
.output()
|
||||
.expect("unable to obtain XCode sdk path");
|
||||
let xcode_sdk_path = String::from_utf8_lossy(&xcode_sdk_path.stdout);
|
||||
let xcode_sdk_path = xcode_sdk_path.trim();
|
||||
|
||||
if xcode_sdk_path.is_empty() {
|
||||
panic!("could not query XCode sdk path");
|
||||
}
|
||||
println!("Using SDK path: {}", xcode_sdk_path);
|
||||
|
||||
let configure_cxx_flags = format!(
|
||||
"-isysroot {} -isystem {} -DSTDC_HEADERS=1 -DHAVE_FCNTL_H -arch arm64 -arch x86_64",
|
||||
xcode_sdk_path, xcode_sdk_path
|
||||
);
|
||||
let configure_c_flags = "-arch arm64 -arch x86_64";
|
||||
|
||||
Command::new(out_wx_dir.join("configure"))
|
||||
.current_dir(build_dir.to_string_lossy().to_string())
|
||||
.args(&[
|
||||
|
@ -210,9 +192,8 @@ fn build_native() {
|
|||
"--without-liblzma",
|
||||
"--with-libjpeg=builtin",
|
||||
"--with-libpng=builtin",
|
||||
"--enable-universal-binary=arm64,x86_64"
|
||||
])
|
||||
.env("CXXFLAGS", &configure_cxx_flags)
|
||||
.env("CFLAGS", configure_c_flags)
|
||||
.spawn()
|
||||
.expect("failed to execute configure")
|
||||
} else {
|
||||
|
@ -258,6 +239,7 @@ fn build_native() {
|
|||
// This is needed until https://github.com/rust-lang/rust/issues/55235 is fixed
|
||||
if should_use_ci_m1_workaround {
|
||||
convert_fat_libraries_to_arm(&out_wx_dir.join("build-cocoa").join("lib"));
|
||||
convert_fat_libraries_to_arm(&out_wx_dir.join("build-cocoa"));
|
||||
}
|
||||
|
||||
let config_path = out_wx_dir.join("build-cocoa").join("wx-config");
|
||||
|
@ -301,7 +283,7 @@ fn build_native() {
|
|||
#[cfg(target_os = "macos")]
|
||||
fn convert_fat_libraries_to_arm(lib_dir: &Path) {
|
||||
for entry in
|
||||
glob::glob(&format!("{}/*.a", lib_dir.to_string_lossy())).expect("failed to glob lib directory")
|
||||
glob::glob(&format!("{}/*", lib_dir.to_string_lossy())).expect("failed to glob directory")
|
||||
{
|
||||
let path = entry.expect("unable to unwrap glob entry");
|
||||
|
||||
|
@ -320,21 +302,13 @@ fn convert_fat_libraries_to_arm(lib_dir: &Path) {
|
|||
continue;
|
||||
}
|
||||
|
||||
let parent = path.parent().expect("unable to extract parent");
|
||||
let renamed_file = parent.join(format!(
|
||||
"{}.old",
|
||||
&path.file_name().unwrap_or_default().to_string_lossy()
|
||||
));
|
||||
|
||||
std::fs::rename(&path, &renamed_file).expect("unable to rename fat library");
|
||||
|
||||
println!("converting {} to arm", path.to_string_lossy(),);
|
||||
|
||||
let result = std::process::Command::new("lipo")
|
||||
.args(&[
|
||||
"-thin",
|
||||
"arm64",
|
||||
&renamed_file.to_string_lossy().to_string(),
|
||||
&path.to_string_lossy().to_string(),
|
||||
"-output",
|
||||
&path.to_string_lossy().to_string(),
|
||||
])
|
||||
|
|
Loading…
Reference in New Issue
Block a user