Commit Graph

528 Commits

Author SHA1 Message Date
dc209b8a83 [CMake] tablegen(): Use -I <dir> according to the list by include_directories().
For now, local_tds and global_tds are integrated to dependent_tds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200150 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-26 12:41:38 +00:00
9def8b2640 [CMake] Functionalize tblgen().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200149 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-26 12:41:33 +00:00
a81d9af293 [CMake] configure_lit_site_cfg: ${SHLIBDIR} should point the build tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200134 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-26 06:18:56 +00:00
92e658b566 Don't clobber CMAKE_REQUIRED_FLAGS, it ends up being used in
C compilations as well and these flags don't make any sense there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199756 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-21 18:09:19 +00:00
b422abd4be Fix VS2012 ID/version check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199753 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-21 16:41:07 +00:00
2c2019b245 Fix libstdc++4.7 test on Android.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199714 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-21 09:00:30 +00:00
95dd2f4e8d [CMake] LLVMProcessSources.cmake: Add include(CMakeParseArguments).
I didn't realize that cmake_parse_arguments() would require explicit inclusion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199674 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-20 17:05:49 +00:00
b924b8b56c [CMake] llvm_process_sources: Introduce a parameter, ADDITIONAL_HEADERS.
ADDITIONAL_HEADERS is intended to add header files for IDEs as hint.

For example:
  add_llvm_library(LLVMSupport
    Host.cpp
    ADDITIONAL_HEADERS
      Unix/Host.inc
      Windows/Host.inc
    )

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199639 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-20 10:20:23 +00:00
6a9e4a8254 [CMake] Introduce new scheme of LLVM_TOOLS_BINARY_DIR and LLVM_LIBRARY_DIR
In LLVM build tree, they points corresponding INTDIR.

  In Clang standalone tree, they points external dir (llvm-config's --bindir and --libdir).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199595 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-19 12:52:10 +00:00
d172504e75 [CMake] Prune deprecate usage of CMAKE_RUNTIME_OUTPUT_DIRECTORY.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199592 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-19 12:47:18 +00:00
b2671254bd Add the test for libstdc++ versions newer than 4.6 so we don't
accidentally pick that up while using Clang and run into subtle bugs
down the road related to C++11 features not fully implemented in that
version of the standard library.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199484 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-17 09:47:55 +00:00
23262fb8a0 [cmake] Attempt to fix sanitizer buildbot.
The generation of the native_export_file end up in
several different makefiles. All those makefiles
write the same file, but can be executed concurrently...
and bad things happen!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199356 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-16 06:43:55 +00:00
55e6c6184a Factor the option and checking of compiler version better. Put the
option with the others in the top level CMakeLists, and put the check in
HandleLLVMOptions. This will also let it be used from the standalone
Clang builds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199149 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-13 22:21:34 +00:00
bf2609e264 Add a check that the host compiler is modern to CMake, take 1. This is
likely to be reverted and re-applied a few times. The minimum versions
we're aiming at:

  GCC 4.7
  Clang 3.1
  MSVC 17.0 (Visual Studio 2012)

Let me know if something breaks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199145 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-13 21:47:35 +00:00
02a054cd61 [CMake] Add a comment to tablegen's copy_if_different. Ninja reports every action by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199058 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-12 17:42:43 +00:00
b1adf0890a CMake: Provide LLVM_PLUGIN_EXT definition
This is needed to support the addition of tests for clang loadable plugins.

In clang, plugins are built as modules (bundles on OS X) rather than dynamic
libraries (dylib) so the build system needs to inform lit of the actual
file extension in use, typically '.so' on Unix and '.dll' on Windows.

(LLVM itself should probably switch to this scheme to fix PR14903 once and for
all.)

No change in build output or functionality intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198746 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-08 11:10:24 +00:00
bba676f3fe [CMake] Introduce llvm_update_compile_flags(target_name) to update compile flags in target properties.
FIXME: Just add_unittest() is using it.
FIXME: Cooperate with source properties.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198683 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-07 10:24:14 +00:00
1abc3c0b7f Introduce a cmake LLVM_ENABLE_LIBCXX build parameter to compile using libc++ instead of the system default
Summary:
This parameter is required to build C++11 projects (like lld or lldb) on OS X as the default STL does not provide c++ classes.


CC: llvm-commits, triton

Differential Revision: http://llvm-reviews.chandlerc.com/D2381

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198625 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-06 18:27:27 +00:00
00e9cfeaf7 Add a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198528 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-05 00:37:45 +00:00
ecc59f2299 [CMake] Add missing set_output_directory after Takumi's change in r198205.
Plugins need to go in build/Debug/lib as well (rather than build/lib/Debug).

Also, fix the SHLIBDIR path for Xcode, which by default includes Xcode build
settings rather than a simple %(build_mode)s parameter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198344 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-02 19:47:45 +00:00
2cb57f964f CMake separate projects: use correct name for LIBRARY_OUTPUT_DIRECTORY_${suffix}.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198335 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-02 19:07:19 +00:00
54ed186e1b Remove CMake-Xcode hack that symlinked llvm-config into a common place.
When building Clang separately from LLVM with CMake, one should set
the path of llvm-config via the cache variable LLVM_CONFIG.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198316 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-02 16:30:55 +00:00
74ae52847d [CMake][VS][XCode] Restruct the output directory layout more comfortable, ${BINARY_DIR}/${BUILD_MODE}/(bin|lib)
We have been seeing nasty directory layout with CMake multiconfig, such as,
  bin/Release/clang.exe
  lib/clang/3.x/...
  lib/Release/clang/3.x/.. (duplicated)

Move the layout similar to autoconf's;
  Release/bin/clang.exe
  Release/lib/clang/3.x/...

Checked on Visual Studio 10. Could you guys please confirm my change on XCode(and other multiconfig builders)?

Note: Don't set variables CMAKE_*_OUTPUT_DIRECTORY any more, or a certain builder, for eaxample, msbuild.exe, would be confused.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198205 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-30 06:48:30 +00:00
6db0e39d40 Visual C++ does not support -ffunction-sections -fdata-sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198203 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-30 05:31:53 +00:00
94d1e67cb5 Port r198087 and r198089 (strip dead code by default) from make to cmake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198198 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-30 03:36:05 +00:00
098bcf76bc [cmake] In add_llvm_loadable_module, don't clobber existing LINK_FLAGS on OS X.
Also add leading spaces to the LINK_FLAGS setters, since that's what the cmake
folks recommend: http://www.cmake.org/pipermail/cmake/2012-October/052399.html


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198182 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 23:04:48 +00:00
9339519ceb Fix mis-merging in AddLLVM.cmake, take #2. LINK.EXE's options had been broken. Sorry again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198169 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 16:50:15 +00:00
e44676d928 Fix mis-merging in AddLLVM.cmake. Sorry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198166 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 16:19:13 +00:00
ee8b3c30aa [CMake] Fix add_llvm_loadble_module.
Thanks to Edward-san, to let me know.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198165 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 16:15:31 +00:00
a1d32ccea8 [CMake] add_llvm_symbol_exports: Use unique name for each target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198164 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 16:15:26 +00:00
d9c7484430 [CMake] add_llvm_symbol_exports: Use ${native_export_file} instead of equivalent constant "symbol.*', since it is defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198163 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 16:15:18 +00:00
827176c80c Yet another attempt at getting cmake-clang-i686-mingw32 green.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198159 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 07:43:09 +00:00
bfefc8d071 Windows build fixes, hopefully last part.
r198153 fixed the msvs bot problem, but broke a msysgit bot. This change
hopefully makes both variants happy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198156 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 06:56:28 +00:00
531c479697 Another windows build fix attempt.
Inspired by http://public.kitware.com/pipermail/cmake-developers/2012-March/003768.html


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198153 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 06:12:40 +00:00
343bda6487 More windows build fix attempts.
The windows ninja build is now green, but msvs is still unhappy. Maybe that's
because the .def file was passed when building LTO_static, so only pass
symbol lists for shared libraries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198151 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 05:39:01 +00:00
006e786b35 The same we do every commit, Pinky: Try to fix the windows build (after r198136).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198148 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 04:05:23 +00:00
3b6e25e332 Another windows build fix attempt after r198136.
The current quoting is stripped by cmake, try quoting more.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198143 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 00:50:09 +00:00
a2ecd26be9 Try to fix windows build more after r198136.
The command that cmd.exe is complaining about is:
cmd.exe /c cd /D C:\bb-win7\cmake-clang-i686-mingw32\build\tools\lto && cmake -E echo EXPORTS > symbol.def && type C:/bb-win7/cmake-clang-i686-mingw32/llvm-project/llvm/tools/lto/lto.exports >> symbol.def

Maybe quoting the filename helps.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198140 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 00:27:49 +00:00
6d731f052b Use ${CMAKE_COMMAND} instead of cmake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198139 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-29 00:11:20 +00:00
3ab1aa82a2 Try to fix windows build after r198136.
`type` can't read from stdin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198138 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-28 23:50:01 +00:00
7f5deb1e2e Try to fix linux build after r198136.
$ needs to be written $$ in makefiles, but not in cmakefiles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198137 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-28 23:39:49 +00:00
b6fe25c476 EXPORTED_SYMBOL_FILE support for cmake
The cmake build didn't support EXPORTED_SYMBOL_FILE. Instead, it had a
Windows-only implementation in tools/lto/CMakeLists.txt, a linux-only
implementation in tools/gold/CMakeLists.txt, and a darwin-only implementation
in tools/clang/tools/libclang/CMakeLists.txt.

This attempts to consolidate these one-offs into a single place. Clients can now
just set LLVM_EXPORTED_SYMBOL_FILE and things (hopefully) Just Work, like in
the make build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198136 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-28 23:31:44 +00:00
621bd8d76a Remove windows newlines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198135 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-28 23:26:51 +00:00
baf8c08693 Fix documentation typos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197757 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-20 00:33:39 +00:00
23b7879584 Revert r197682, "[CMake] Introduce LIT in add_lit_target."
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197703 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-19 17:11:08 +00:00
974dbe1f06 [CMake] Introduce LIT in add_lit_target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197682 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-19 16:02:17 +00:00
25acded1b0 [CMake] Don't put every project's tblgen executable in the LLVM bin directory.
This changes Clang standalone builds so that clang-tblgen lives in
clang/build/bin instead of llvm/build/bin, and so that with the Xcode
generator it's in clang/build/bin/Debug instead of llvm/build/bin/Debug/Debug/.
Yes, really.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197590 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-18 17:50:33 +00:00
b7967ba237 [CMake] Prune LLVM_TOOLS_BINARY_DIR in LLVMConfig.cmake, since it always points build directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197581 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-18 15:57:58 +00:00
fe8eb63fcb [CMake] ${LLVM_MAIN_SRC_DIR}/include can be represented as ${LLVM_MAIN_INCLUDE_DIR}.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197396 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-16 16:14:19 +00:00
742c278977 [CMake] Introduce LLVM_RUNTIME_OUTPUT_INTDIR and LLVM_LIBRARY_OUTPUT_INTDIR to reduce references to CMAKE_CFG_INTDIR.
Each of them forms like;
  ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}
  ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197394 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-16 16:03:08 +00:00