Compare commits

...

7 Commits
0.4.1 ... 0.4.3

3 changed files with 41 additions and 6 deletions

View File

@@ -2,6 +2,22 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [0.4.3](https://github.com/jimeh/build-emacs-for-macos/compare/0.4.2...0.4.3) (2020-12-28)
### Bug Fixes
* **big-sur:** add Xcode CLI tools lib directory to runtime LIBRARY_PATH ([946856e](https://github.com/jimeh/build-emacs-for-macos/commit/946856e9c242d4a6fb5f839d8cae0acfafecdfc6))
* **big-sur:** added support for building on Big Sur ([2247158](https://github.com/jimeh/build-emacs-for-macos/commit/2247158051d0f59933569b6974b2b5269f13c79e))
### [0.4.2](https://github.com/jimeh/build-emacs-for-macos/compare/0.4.1...0.4.2) (2020-12-09)
### Bug Fixes
* **cli:** avoid error if --git-sha is used without a branch/tag/sha argument ([884f160](https://github.com/jimeh/build-emacs-for-macos/commit/884f1607f6707ca187b1abfb0ce562757d872230)), closes [#21](https://github.com/jimeh/build-emacs-for-macos/issues/21)
* **native_comp:** update env setup patch for recent changes to comp.el ([c7daa13](https://github.com/jimeh/build-emacs-for-macos/commit/c7daa1350bd69df172ce6484c54189d2cee8d97e))
### [0.4.1](https://github.com/jimeh/build-emacs-for-macos/compare/0.4.0...0.4.1) (2020-10-29) ### [0.4.1](https://github.com/jimeh/build-emacs-for-macos/compare/0.4.0...0.4.1) (2020-10-29)

View File

@@ -78,7 +78,7 @@ class Build
attr_reader :ref attr_reader :ref
attr_reader :options attr_reader :options
def initialize(root_dir, ref = 'master', options = {}) def initialize(root_dir, ref = nil, options = {})
@root_dir = root_dir @root_dir = root_dir
@ref = ref @ref = ref
@options = options @options = options
@@ -299,6 +299,11 @@ class Build
ENV['PATH'] ENV['PATH']
].compact.join(':') ].compact.join(':')
ENV['LIBRARY_PATH'] = [
ENV['LIBRARY_PATH'],
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
].compact.join(':')
configure_flags = [ configure_flags = [
'--with-ns', '--with-ns',
'--with-modules', '--with-modules',
@@ -366,12 +371,12 @@ class Build
FileUtils.mkdir_p(builds_dir) FileUtils.mkdir_p(builds_dir)
metadata = [ metadata = [
ref.gsub(/\W/, '-'), meta[:ref]&.gsub(/\W/, '-'),
meta[:date], meta[:date],
meta[:sha][0..6], meta[:sha][0..6],
"macOS-#{OS.version}", "macOS-#{OS.version}",
OS.arch OS.arch
] ].compact
filename = "Emacs.app-[#{metadata.join('][')}].tbz" filename = "Emacs.app-[#{metadata.join('][')}].tbz"
target = "#{builds_dir}/#{filename}" target = "#{builds_dir}/#{filename}"
@@ -412,11 +417,13 @@ class Build
err "Failed to get commit info about: #{ref_sha}" if commit_json.nil? err "Failed to get commit info about: #{ref_sha}" if commit_json.nil?
commit = JSON.parse(commit_json) commit = JSON.parse(commit_json)
meta = {
@meta = {
sha: commit['sha'], sha: commit['sha'],
date: Date.parse(commit['commit']['committer']['date']) date: Date.parse(commit['commit']['committer']['date'])
} }
meta[:ref] = ref if ref && ref[0..6] != meta[:sha][0..6]
@meta = meta
end end
def http_get(url) def http_get(url)

View File

@@ -2,7 +2,7 @@ diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 25e2de9..bcedd31 100644 index 25e2de9..bcedd31 100644
--- a/lisp/emacs-lisp/comp.el --- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el
@@ -2801,6 +2801,45 @@ queued with LOAD %" @@ -2801,6 +2801,57 @@ queued with LOAD %"
(comp-run-async-workers) (comp-run-async-workers)
(message "Compilation started.")))) (message "Compilation started."))))
@@ -13,6 +13,8 @@ index 25e2de9..bcedd31 100644
+ (string-match-p "\.app\/Contents\/MacOS\/?$" + (string-match-p "\.app\/Contents\/MacOS\/?$"
+ invocation-directory)) + invocation-directory))
+ (let* ((library-path-env (getenv "LIBRARY_PATH")) + (let* ((library-path-env (getenv "LIBRARY_PATH"))
+ (devtools-dir
+ "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib")
+ (gcc-base-dir (concat invocation-directory "lib/gcc")) + (gcc-base-dir (concat invocation-directory "lib/gcc"))
+ (gcc-version (car (seq-filter + (gcc-version (car (seq-filter
+ (lambda (dir) (string-match-p "^[0-9]+$" dir)) + (lambda (dir) (string-match-p "^[0-9]+$" dir))
@@ -28,6 +30,8 @@ index 25e2de9..bcedd31 100644
+ (darwin-dir (concat darwin-base-dir "/" darwin-version)) + (darwin-dir (concat darwin-base-dir "/" darwin-version))
+ (lib-paths (append + (lib-paths (append
+ (list gcc-dir darwin-dir) + (list gcc-dir darwin-dir)
+ (if (file-directory-p devtools-dir)
+ (list devtools-dir) (list))
+ (if library-path-env (list library-path-env) (list))))) + (if library-path-env (list library-path-env) (list)))))
+ +
+ (when (and gcc-dir darwin-dir) + (when (and gcc-dir darwin-dir)
@@ -36,14 +40,22 @@ index 25e2de9..bcedd31 100644
+ ;; Remove advice, as it only needs to run once. + ;; Remove advice, as it only needs to run once.
+ (advice-remove 'native-compile + (advice-remove 'native-compile
+ 'native-compile-setup-environment-variables) + 'native-compile-setup-environment-variables)
+ (advice-remove 'comp--native-compile
+ 'native-compile-setup-environment-variables)
+ (advice-remove 'native-compile-async + (advice-remove 'native-compile-async
+ 'native-compile-setup-environment-variables)
+ (advice-remove 'native--compile-async
+ 'native-compile-setup-environment-variables)) + 'native-compile-setup-environment-variables))
+ +
+;; Ensure environment setup runs before any native compilation. +;; Ensure environment setup runs before any native compilation.
+(advice-add 'native-compile :before +(advice-add 'native-compile :before
+ 'native-compile-setup-environment-variables) + 'native-compile-setup-environment-variables)
+(advice-add 'comp--native-compile :before
+ 'native-compile-setup-environment-variables)
+(advice-add 'native-compile-async :before +(advice-add 'native-compile-async :before
+ 'native-compile-setup-environment-variables) + 'native-compile-setup-environment-variables)
+(advice-add 'native--compile-async :before
+ 'native-compile-setup-environment-variables)
+ +
(provide 'comp) (provide 'comp)