Skip to content

Commit

Permalink
.github(cross-compile): improve cross-compilation from Linux to Windows
Browse files Browse the repository at this point in the history
When cross-compiling from Linux to Windows:

- output the executable with a `.exe` file extension, by passing -o to
  Nim

- fix error for `llvm-readobj` not found
  • Loading branch information
ee7 committed Aug 17, 2023
1 parent 8ea7f02 commit 92a278d
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions .github/bin/cross-compile
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,19 @@ cross_compile() {
*) nim_os="${os}" ;;
esac

local binary_name
case "${os}" in
linux | macos) binary_name='configlet' ;;
windows) binary_name='configlet.exe' ;;
esac

local build_options=(
-d:release
--cpu:"${arch}"
--os:"${nim_os}"
-d:zig
-d:target:"${target}"
-o:"${binary_name}"
)
# On macOS, add to the compiler's and linker's framework search path.
dir='/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks'
Expand All @@ -42,19 +49,13 @@ cross_compile() {
fi

nimble --verbose build "${build_options[@]}"
file "${binary_name}"

local binary_name='configlet'
mkdir -p "${archives_dir}"
local archive_base="${archives_dir}/${binary_name}_${build_tag}_${os}_${arch}"
local archive_base="${archives_dir}/configlet_${build_tag}_${os}_${arch}"
case "${os}" in
linux | macos)
file "${binary_name}"
tar -cvzf "${archive_base}.tar.gz" "${binary_name}"
;;
windows)
llvm-readobj "${binary_name}.exe"
7z a "${archive_base}.zip" "${binary_name}.exe"
;;
linux | macos) tar -cvzf "${archive_base}.tar.gz" "${binary_name}" ;;
windows) 7z a "${archive_base}.zip" "${binary_name}" ;;
esac
}

Expand Down

0 comments on commit 92a278d

Please sign in to comment.