Andrew Kelley
e857190dab
put the previous commit behind cmake option ZIG_PREFER_CLANG_CPP_DYLIB
...
Without this, building from source caused:
CommandLine Error: Option 'mc-relax-all' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
This is due to LLVM static libs compiled in multiple times. But without
the LLVM static libs on the linker line, it caused undefined symbol
linker errors.
So our hands are tied. Homebrew users will have to specify
`-DZIG_PREFER_CLANG_CPP_DYLIB`.
2020-04-10 01:25:15 -04:00
Andrew Kelley
aaf99371b2
look for clang-cpp shared lib when it exists
...
See #4799
2020-04-10 00:38:19 -04:00
Michael Neumann
7a829a7015
Fix paths to find llvm/clang on DragonFly
2020-04-07 17:13:33 +02:00
Andrew Kelley
15ab61b2a0
cmake: improvements to cross-compiling for Windows
...
* don't unconditionally pass -lz3 for mingw builds. If mingw builds
require this then the llvm-config executable should put it as part of
--system-libs. If there is a bug and it does not do that, and we need
a workaround, then the workaround should be an explicit cmake option.
* don't link libstage2.a against -lntdll. This causes zig to set
`builtin.link_mode == .Dynamic` and include the TLS definitions,
which then collide with the mingw-w64 symbols. This should probably
be addressed separately, but for now this solves the problem and
there is no reason to link a static library against a DLL.
* Findllvm.cmake no longer treats the libraries as "optional" and will
emit a cmake error if one is not found. Additionally, the
not-required LLVM library LLVMTableGen is omitted.
2020-04-06 18:38:09 -04:00
Brian Cain
607892a30d
Create an "LLD_LIBDIRS" var to override lld loc
2020-03-30 11:01:36 -04:00
Andrew Kelley
69aa09948b
cmake: support cross compiling
2020-03-27 23:43:21 -04:00
Andrew Kelley
107b5196f6
Merge pull request #4827 from ziglang/zig-cpp
...
support compiling and linking c++ code
2020-03-27 22:35:13 -04:00
Andrew Kelley
e803490a56
cmake: support finding a cross compiled llvm
2020-03-27 22:24:15 -04:00
Michael Dusan
9cc593ca78
cmake: address new warnings from cmake-3.17
...
Match package-name case from CMakeLists.txt .
New warning sample:
The package name passed to `find_package_handle_standard_args` (LLVM) does
not match the name of the calling package (llvm). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
2020-03-25 18:43:28 -04:00
Andrew Kelley
f9992850a5
simplify cmake logic for finding clang
...
which fixes the build on windows
2020-03-22 17:35:06 -04:00
Andrew Kelley
f33bf48af7
Merge remote-tracking branch 'origin/master' into llvm10
2020-02-25 16:30:40 -05:00
Andrew Kelley
20f3b0efff
rename libuserland to libstage2
2020-02-16 19:16:08 -05:00
Andrew Kelley
7eb0a3edce
remove libc dependency of zig0 building libstage2
...
Rather than `zig0 build ...` the build now does
`zig0 build-lib ...`, avoiding the requirement of linking the build
script, and thus avoiding the requirement of finding native libc,
for systems where libc is the system ABI.
2020-02-16 18:57:34 -05:00
Andrew Kelley
97b2ac598b
Merge remote-tracking branch 'origin/master' into llvm10
2020-01-22 12:12:36 -05:00
Michael Dusan
b9f4ac86ef
cmake: support make
and make install
...
(2nd attempt to get this right)
2020-01-17 19:39:43 -05:00
Andrew Kelley
fbe6af81fd
Merge remote-tracking branch 'origin/master' into llvm10
2020-01-16 13:01:36 -05:00
Sahnvour
63ecded3ce
msvc: reduce inlining aggressivity to workaround a codegen bug in cl.exe cf. #3024
2019-10-16 19:04:50 -04:00
Sahnvour
5b51f41cee
stage1: override cmake's default compilation flags to statically link the CRT on windows
...
we want to use /MT instead of /MD for a fully static executable
2019-10-16 19:04:50 -04:00
LemonBoy
935cce2414
Fix lld search path
2019-10-12 15:27:42 +02:00
Andrew Kelley
6f10e3fda6
llvm 9.0.0 => llvm 10.0.0
2019-10-02 02:11:46 -04:00
Andrew Kelley
e816d592e8
update zig codebase to llvm 9
2019-07-17 17:47:39 -04:00
Andrew Kelley
8f92a49dfd
update to llvm9 trunk
2019-07-16 22:23:48 -04:00
daurnimator
3a67c13b5d
cmake: allow user to select static vs dynamic LLVM
2019-07-16 12:33:13 -04:00
Andrew Kelley
038946288c
Revert "fixed path with spaces in llvm-config ( #2854 )"
...
This reverts commit d23798a296
.
This caused build problems for several people.
2019-07-09 13:31:13 -04:00
Ian Lilley
d23798a296
fixed path with spaces in llvm-config ( #2854 )
...
* fixed path with spaces in llvm-config
2019-07-09 11:48:25 -04:00
Wink Saville
7bafe2e490
Fix alignment of macro FIND_AND_ADD_CLANG_LIB
2019-04-24 14:42:08 -04:00
Andrew Kelley
2dcf1a2392
Merge remote-tracking branch 'origin/master' into llvm8
2019-02-28 09:19:18 -05:00
Andrew Kelley
a77a17e2c2
add zig cc
command to act like a C compiler
...
closes #490
2019-02-24 12:53:28 -05:00
Andrew Kelley
1864acd326
Merge remote-tracking branch 'origin/master' into llvm8
2019-02-09 18:57:39 -05:00
Andrew Kelley
91baa574a5
build: update Findllvm.cmake for llvm 8
2019-02-07 12:24:55 -05:00
Andrew Kelley
f8ba50f5ed
build: make sure LLVM is exactly correct
...
* check the version to be the correct major version
* ensure that it has all the default targets enabled
2019-02-07 12:22:04 -05:00
Andrew Kelley
7843c96df8
build: make sure LLVM is exactly correct
...
* check the version to be the correct major version
* ensure that it has all the default targets enabled
2019-02-07 12:18:01 -05:00
Andrew Kelley
87f5bed11f
Merge remote-tracking branch 'origin/master' into llvm8
2019-01-22 20:10:34 -05:00
tharvik
3bec3b9f9b
llvm-config sanity check
2019-01-21 15:58:54 -05:00
Andrew Kelley
c00216701c
Merge remote-tracking branch 'origin/master' into llvm8
2018-12-23 17:04:26 -05:00
Andrew Kelley
dd2450b1b2
tier 2 support for freebsd
2018-11-27 20:56:43 -05:00
Andrew Kelley
f8d6f5daff
Merge remote-tracking branch 'origin/master' into llvm8
2018-11-05 10:56:42 -05:00
Greg V
24e54799fd
Fix CMake finding LLVM/clang/lld on FreeBSD
2018-10-20 15:15:01 +03:00
Andrew Kelley
5b84192f07
build: try to find llvm-config-7 before llvm-config
2018-10-06 00:10:16 -04:00
Andrew Kelley
a4d61b5d72
update to llvm 8
2018-09-19 17:34:52 -04:00
Andrew Kelley
287f5cce50
build: fix finding llvm and clang 7
2018-09-19 15:38:36 -04:00
Andrew Kelley
7109035b78
Merge remote-tracking branch 'origin/master' into llvm7
2018-08-25 21:57:28 -04:00
prazzb
6e55f61581
Find local llvm-config first
...
Distro's llvm usually have a 6.0 suffix.Any custom llvm build
names the binary as llvm-config.Keeping 6.0 variant first causes
the distro's llvm to be compiled in place of a custom one even if
given using CMAKE_PREFIX_PATH.
2018-08-13 22:55:19 +05:30
Andrew Kelley
84a700f972
llvm7: find external liblldWasm and update for newest lld macho API
2018-06-14 18:28:42 -04:00
Andrew Kelley
cca93908e6
Merge remote-tracking branch 'origin/master' into llvm7
2018-04-04 17:22:26 -04:00
Andrew Kelley
f586acabdc
add ZIG_STATIC cmake option
...
it's not compatible with glibc but it works with musl
2018-03-30 13:20:13 -04:00
Andrew Kelley
62668e3e6b
update to llvm 7.0.0
2018-03-22 15:39:50 -04:00
Ben Noordhuis
c2c34c09b9
add LLVM_LIBDIRS to link directories
...
This seems to be the only way to get the zig build to link against llvm
libraries in a non-standard location.
2018-03-17 18:41:54 +01:00
Ben Noordhuis
4a921b2eba
add CLANG_LIBDIRS cmake build variable
...
Mirrors LLVM_LIBDIRS, tells cmake where to look for libclang libraries.
2018-03-17 18:41:47 +01:00
Andrew Kelley
94ec2190f8
update to llvm master
2017-11-02 21:54:24 -04:00
Andrew Kelley
3fe50cb13c
simpler cmake for msvc
2017-09-28 10:48:13 -04:00
Andrew Kelley
41b588547c
improvements to windows support
...
See #302
2017-09-23 18:46:03 -04:00
Andrew Kelley
d9eabde319
add Child property of slice type
...
also rename child field to Child for pointer and array
2017-09-13 14:30:57 -04:00
Andrew Kelley
57ea6e8c9f
fix up msvc stuff to make it work on linux and macos too
2017-09-13 02:40:02 -04:00
Jonathan Marler
67021e2bff
Modified cmake to use LLVM imported packages.
2017-09-11 18:27:41 -06:00
Jonathan Marler
7c81cd30de
Add support for MSVC
2017-09-11 09:26:26 -06:00
Andrew Kelley
120e2fdf8b
build: add more search paths for libclang
...
thanks @smaeul
2017-09-09 17:17:36 -04:00
Jonathan Marler
850a1d2054
Switched find order for llvm, means it will choose llvm version 5.0 before any other version. ( #446 )
2017-09-08 17:08:24 -04:00
Andrew Kelley
234030c37a
update build to look for llvm 5.0
2017-08-26 00:34:40 -04:00
Andrew Kelley
62b23f5da5
build: link against system libs reported by llvm-config
2017-06-19 10:33:19 -04:00
Andrew Kelley
e64f0971fc
add appveyor integration testing
2017-06-03 12:47:23 -04:00
Andrew Kelley
3a137c6ff0
add Travis CI integration
2017-04-21 13:27:11 -04:00
Andrew Kelley
f043e0e85c
build: ignore libLLD.so when it is a broken symlink
...
closes #318
2017-04-13 00:12:44 -04:00
Andrew Kelley
403eb92a62
try harder to find lld
2017-04-11 06:44:45 -04:00
Josh Wolfe
536c35136a
fix cmake finding dependencies for ubuntu
2017-03-29 22:18:12 -07:00
Andrew Kelley
d10bbd28e9
use lld instead of system linker
2017-03-13 11:54:56 -04:00
Andrew Kelley
cd31f875a6
update to llvm 4.0
2017-03-10 02:29:01 -05:00
Andrew Kelley
4e7effd3d3
port to llvm 3.9
2016-09-04 18:30:40 -07:00
Andrew Kelley
037283c3b3
build: link against libLLVM.so if available
...
readme: better instructions for finding native libc headers
2016-04-30 17:17:59 -07:00
Andrew Kelley
76e1541803
update to llvm 3.8.0
2016-03-08 18:56:14 -07:00
Andrew Kelley
194e93a582
add windows os code
2016-02-16 19:42:46 -07:00
Andrew Kelley
3664e8e4e2
use llvm-config to find llvm include dirs
2016-02-15 15:52:19 -07:00
Josh Wolfe
62a689f7f5
fix some of the ubuntu build trouble
2016-02-08 14:34:51 -07:00
Andrew Kelley
fc5ffd32e9
build: prefer llvm-config
2016-02-01 22:38:55 -07:00
Andrew Kelley
0278468479
upgrade to the libclang C++ API
...
c_import creates a tmp .h file and parses it with libclang,
reporting any errors found.
See #88
2016-01-27 00:01:49 -07:00
Andrew Kelley
3eca42c17b
cmake: detect libLLVM.so
2016-01-19 22:13:22 -07:00
Andrew Kelley
890714b8ca
Revert "delete parseh"
...
This reverts commit 18374ea8f1
.
2016-01-18 21:28:54 -07:00
Andrew Kelley
18374ea8f1
delete parseh
...
we'll have to switch to the clang C++ api anyway
we'll revive this code later
2016-01-15 14:16:07 -07:00
Josh Wolfe
180f539f67
cmake needs to be taught a lesson in debian paths
2015-12-06 23:19:03 -07:00
Andrew Kelley
ad3f98c615
parseh command, parses a C .h file and produces extern decls
2015-12-03 16:00:14 -07:00
Andrew Kelley
c3458543c9
build: fix findllvm script
2015-11-25 11:37:43 -07:00
Andrew Kelley
a1771c76c3
build: improve findllvm script
2015-11-25 11:23:25 -07:00
Andrew Kelley
50f0ed918c
link against LLVM
2015-08-05 15:23:15 -07:00