Commit Graph

133 Commits

Author SHA1 Message Date
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