mirror of
https://github.com/jimeh/build-emacs-for-macos.git
synced 2026-02-19 13:06:38 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
228ae0939c
|
|||
|
ac943c430c
|
|||
|
bc3923c9ca
|
|||
|
e6b1e5a554
|
|||
|
94625fce38
|
|||
|
b03343f506
|
21
CHANGELOG.md
21
CHANGELOG.md
@@ -2,6 +2,27 @@
|
|||||||
|
|
||||||
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.6.13](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.12...v0.6.13) (2021-08-04)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **native_comp:** add option to enable/disable relinking *.eln files ([ac943c4](https://github.com/jimeh/build-emacs-for-macos/commit/ac943c430c58e0761ac44e8d25d4d55a461d01a2))
|
||||||
|
|
||||||
|
### [0.6.12](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.11...v0.6.12) (2021-08-02)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **sign:** resolve signing issue caused by re-linking shared lib in *.eln files ([e6b1e5a](https://github.com/jimeh/build-emacs-for-macos/commit/e6b1e5a554fd0f776bd01c17cfb1ebbbdf7a7831))
|
||||||
|
|
||||||
|
### [0.6.11](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.10...v0.6.11) (2021-07-17)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **native-comp:** fix re-linking and signing issue with *.eln files ([b03343f](https://github.com/jimeh/build-emacs-for-macos/commit/b03343f506aa3ceabdfa03f8a2916b2db4873f3f))
|
||||||
|
|
||||||
### [0.6.10](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.9...v0.6.10) (2021-07-16)
|
### [0.6.10](https://github.com/jimeh/build-emacs-for-macos/compare/v0.6.9...v0.6.10) (2021-07-16)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ class Build
|
|||||||
handle_native_lisp(app)
|
handle_native_lisp(app)
|
||||||
add_cli_helper(app)
|
add_cli_helper(app)
|
||||||
|
|
||||||
LibEmbedder.new(app, brew_dir, extra_libs).embed
|
LibEmbedder.new(app, brew_dir, extra_libs, optsion[:relink_eln]).embed
|
||||||
GccLibEmbedder.new(app, gcc_info).embed if options[:native_comp]
|
GccLibEmbedder.new(app, gcc_info).embed if options[:native_comp]
|
||||||
|
|
||||||
archive_build(build_dir) if options[:archive]
|
archive_build(build_dir) if options[:archive]
|
||||||
@@ -157,11 +157,22 @@ class Build
|
|||||||
end
|
end
|
||||||
|
|
||||||
def extra_libs
|
def extra_libs
|
||||||
@extra_libs ||= [
|
return @extra_libs if @extra_libs
|
||||||
|
|
||||||
|
libs = [
|
||||||
File.join(brew_dir, 'opt/expat/lib/libexpat.1.dylib'),
|
File.join(brew_dir, 'opt/expat/lib/libexpat.1.dylib'),
|
||||||
File.join(brew_dir, 'opt/libiconv/lib/libiconv.2.dylib'),
|
File.join(brew_dir, 'opt/libiconv/lib/libiconv.2.dylib'),
|
||||||
File.join(brew_dir, 'opt/zlib/lib/libz.1.dylib')
|
File.join(brew_dir, 'opt/zlib/lib/libz.1.dylib')
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if options[:native_comp]
|
||||||
|
libgcc_s = File.join(
|
||||||
|
brew_dir, 'lib', 'gcc', gcc_info.major_version, 'libgcc_s.1.dylib'
|
||||||
|
)
|
||||||
|
libs << libgcc_s if File.exist?(libgcc_s)
|
||||||
|
end
|
||||||
|
|
||||||
|
@extra_libs = libs
|
||||||
end
|
end
|
||||||
|
|
||||||
def download_tarball(sha)
|
def download_tarball(sha)
|
||||||
@@ -294,6 +305,8 @@ class Build
|
|||||||
"-L#{gcc_info.libgccjit_lib_dir}",
|
"-L#{gcc_info.libgccjit_lib_dir}",
|
||||||
"-I#{File.join(gcc_info.root_dir, 'include')}",
|
"-I#{File.join(gcc_info.root_dir, 'include')}",
|
||||||
"-I#{File.join(gcc_info.libgccjit_root_dir, 'include')}",
|
"-I#{File.join(gcc_info.libgccjit_root_dir, 'include')}",
|
||||||
|
# Ensure library re-linking and code signing will work after building.
|
||||||
|
'-Wl,-headerpad_max_install_names',
|
||||||
ENV['LDFLAGS']
|
ENV['LDFLAGS']
|
||||||
].compact.join(' ')
|
].compact.join(' ')
|
||||||
|
|
||||||
@@ -745,7 +758,7 @@ class AbstractEmbedder
|
|||||||
end
|
end
|
||||||
|
|
||||||
def lib_dir
|
def lib_dir
|
||||||
File.join(app, 'Contents', 'Frameworks')
|
File.join(invocation_dir, 'lib')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -753,7 +766,7 @@ class LibEmbedder < AbstractEmbedder
|
|||||||
attr_reader :lib_source
|
attr_reader :lib_source
|
||||||
attr_reader :extra_libs
|
attr_reader :extra_libs
|
||||||
|
|
||||||
def initialize(app, lib_source, extra_libs = [])
|
def initialize(app, lib_source, extra_libs = [], embed_eln_files = true)
|
||||||
super(app)
|
super(app)
|
||||||
|
|
||||||
@lib_source = lib_source
|
@lib_source = lib_source
|
||||||
@@ -775,7 +788,7 @@ class LibEmbedder < AbstractEmbedder
|
|||||||
rel_path = Pathname.new(lib_dir).relative_path_from(
|
rel_path = Pathname.new(lib_dir).relative_path_from(
|
||||||
Pathname.new(File.dirname(binary))
|
Pathname.new(File.dirname(binary))
|
||||||
).to_s
|
).to_s
|
||||||
eln_files.each { |f| copy_libs(f, rel_path) }
|
eln_files.each { |f| copy_libs(f, rel_path) } if embed_eln_files
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1084,6 +1097,12 @@ if __FILE__ == $PROGRAM_NAME
|
|||||||
cli_options[:native_full_aot] = v
|
cli_options[:native_full_aot] = v
|
||||||
end
|
end
|
||||||
|
|
||||||
|
opts.on('--[no-]relink-eln-files',
|
||||||
|
'Enable/disable re-linking shared libraries in bundled *.eln ' \
|
||||||
|
'files (default: enabled)') do |v|
|
||||||
|
cli_options[:relink_eln] = v
|
||||||
|
end
|
||||||
|
|
||||||
opts.on('--[no-]rsvg',
|
opts.on('--[no-]rsvg',
|
||||||
'Enable/disable SVG image support via librsvg ' \
|
'Enable/disable SVG image support via librsvg ' \
|
||||||
'(default: enabled)') do |v|
|
'(default: enabled)') do |v|
|
||||||
|
|||||||
Reference in New Issue
Block a user