Commit Graph

480 Commits

Author SHA1 Message Date
Chandler Carruth
cf23bd3d8f Hoist LLVM's lit testsuite infrastructure into module so that it can be
re-used. Also, build in direct support for accumulating a set of lit
parameters, arguments, and testsuites to run as part of a 'check-all'
rule. This sinks 'check-all' from a Clang-specific construct to
a generic construct of the project.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159482 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30 10:14:14 +00:00
Chandler Carruth
2178d732a3 Add a missing common variable to the lit.site.cfg generation. This was
only used in the Clang tree, but it seems reasonable to support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159399 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29 00:40:15 +00:00
Chandler Carruth
c502ed657a Move the setup for variables that are expanded in the lit.site.cfg into
a dedicated helper function. This will enable re-using the same logic
for Clang's lit setup, etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159333 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-28 06:36:24 +00:00
NAKAMURA Takumi
b253451b82 LLVMProcessSources.cmake: [MSVC] Don't add "PROPERTIES HEADER_FILE_ONLY" to *.def.
FIXME: Shall we put *.def(s) to the folder?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159102 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 03:50:58 +00:00
Chandler Carruth
343c32a39c Avoid using the recently added APPEND_STRING feature. This should
restore support for CMake versions before 2.8.6 -- sorry for the
trouble!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158930 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-21 18:44:24 +00:00
Chandler Carruth
7c888eee47 Completely refactor the structuring of unittest CMake files to match the
Makefiles, the CMake files in every other part of the LLVM tree, and
sanity.

This should also restore the output tree structure of all the unit
tests, sorry for breaking that, and thanks for letting me know.

The fundamental change is to put a CMakeLists.txt file in the unittest
directory, with a single test binary produced from it. This has several
advantages:

- No more weird directory stripping in the unittest macro, allowing it
  to be used more readily in other projects.
- No more directory prefixes on all the source files.
- Allows correct and precise use of LLVM's per-directory dependency
  system.
- Allows use of the checking logic for source files that have not been
  added to the CMake build. This uncovered a file being skipped with
  CMake in LLVM and one in Clang's unit tests.
- Makes Specifying conditional compilation or other custom logic for JIT
  tests easier.

It did require adding the concept of an explicit 'optional' source file
to the CMake build so that the missing-file check can skip cases where
the file is *supposed* to be missing. =]

This is another chunk of refactoring the CMake build in order to make it
usable for other clients like CompilerRT / ASan / TSan.

Note that this is interdependent with a Clang CMake change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158909 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-21 09:51:26 +00:00
Chandler Carruth
b60182e99b Factor the logic for setting up a GoogleTest unit test executable into
a helper function in CMake. This will allow us to share all of this
logic with Clang, and eventually CompilerRT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158896 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-21 05:16:58 +00:00
Chandler Carruth
45df6f9e04 Remove one of the LLVM-specific CMake hacks in favor of standard CMake
facilities.

This was only used in one place in LLVM, and was used pervasively (but
with different code!) in Clang. It has no advantages over the standard
CMake facilities and in some cases disadvantages.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158889 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-21 01:35:09 +00:00
NAKAMURA Takumi
1b9d890455 TableGen.cmake: Fix to work without LLVM_COMMON_DEPENDS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158650 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-17 15:41:56 +00:00
Tobias Grosser
2563ad294f cmake: Pass the -m32 flag to modules if LLVM_BUILD_32_BITS is enabled
This was previously only done for executables and shared libraries, but not
for modules. As modules are essentially shared libraries (that need to be
dlopened explicitly), threating them the same as shared libraries seems
reasonable. This fixes the LLVM_BUILD_32_BITS build of Polly.

Contributed by: Ondra Hosek  <ondra.hosek@gmail.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158195 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-08 09:41:23 +00:00
Michael J. Spencer
67762d1d45 [CMake] Promote extension warnings to errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158176 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-07 23:33:56 +00:00
Michael J. Spencer
fa371eaff3 [CMake] Order MSVC warnings numerically.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158171 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-07 21:34:31 +00:00
Michael J. Spencer
c3ab9ce3c9 [CMake] Adjust MSVC warnings.
Remove /Wall from LLVM_ENABLE_WARNINGS (it's useless) and promote 4239
to a level 1 warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158170 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-07 21:34:15 +00:00
Tim Northover
4c8657a957 Fix how CMake appends -m32 to linker command-lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157337 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-23 18:42:02 +00:00
Rafael Espindola
869d817aa7 Adding -fcolor-diagnostics is causing problem to users that parse the build
output. Peter Collingbourne also reports that it is showing up in
$(llvm-config --cflags).

Revert this for now since I don't know enough cmake to fix it properly.

This reverts commit 18efed7adc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156392 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-08 18:11:06 +00:00
Rafael Espindola
18efed7adc Pass -fcolor-diagnostics when it is supported. This makes a difference when
using cmake+ninja, since ninja buffers the compiler output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156150 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04 03:23:36 +00:00
Michael J. Spencer
3c00db75e1 [CMake] Restructure how Clang, Polly and other external projects get included.
While making lld build under the tools directory I decided to refactor how this
works.

There is now a macro, add_llvm_external_project, which takes the name of the
expected subdirectory. This sets up two CMake options.

 * LLVM_EXTERNAL_${NAME}_SOURCE_DIR
     This is the path to the source. It defaults to
     ${CMAKE_CURRENT_SOURCE_DIR}/${name}.
 * LLVM_EXTERNAL_${NAME}_BUILD
     Enable and disable building the tool as part of LLVM.

I chose LLVM_EXTERNAL_${NAME} as a prefix so they all show up together in the
GUI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155654 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-26 19:43:35 +00:00
NAKAMURA Takumi
4a80d64194 CMake: Enable LLVM_COMPILER_JOBS on all MS IDEs. We don't support older environments than VS9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155285 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-21 14:51:02 +00:00
NAKAMURA Takumi
5bfe3bf8d1 CMake: Prune redundant LLVM_COMPILER_JOBS from llvm/CMakeLists.txt. HandleLLVMOptions.cmake has it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155284 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-21 14:50:56 +00:00
Michael J. Spencer
647c0ce48c Minimal changes for LLVM to compile under VS11.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151849 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01 22:42:52 +00:00
Rafael Espindola
9993a3aebb Enable -Wcovered-switch-default again, but add -Werror to the checks to make
sure we don't use it with compilers that don't support it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151665 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-28 23:32:06 +00:00
Chandler Carruth
3c2e5f2140 Temporarily revert r151609, which enabled a new warning for LLVM and
Clang builds. The detection logic for compilers that support the warning
isn't working. Rafael is going to investigate it, but didn't want people
to have to wade through build spam until then.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151649 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-28 19:26:56 +00:00
Rafael Espindola
33177f591a Enable -Wcovered-switch-default as it matches the switch style used in llvm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151609 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-28 02:01:55 +00:00
Dylan Noblesmith
fde8237cd9 add LLVM_VERSION_MAJOR and _MINOR defines
This is useful for clients that want to maintain compatibility
across multiple releases of LLVM. Currently users like Klee and
Mesa all have to roll their own 'parse llvm-config --version
output and generate defines' solution.

Also reuse the new macros so that version information is less
redundant/likely to fall out of sync again in the future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150405 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13 18:48:10 +00:00
NAKAMURA Takumi
b510157d35 CMake: Add the folder "Tablegenning" on llvm-tblgen targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149219 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-30 03:01:03 +00:00
Rafael Espindola
e8e7b29fd9 -fvisibility-inlines-hidden is a c++ only option.
Thanks to Peter Collingbourne for noticing it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148913 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25 03:39:26 +00:00
Chandler Carruth
9136f2112c Undo an over zealous rename. This bit of the CMake build really is
dealing in the host triple, be honest about it and document the decision
to default the target triple to the host triple unless overridden.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148822 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24 18:00:44 +00:00
Rafael Espindola
ace4f2b0d4 Don't use -fvisibility-inlines-hidden on mingw to try to avoid a lot of
warnings from gcc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148539 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-20 13:10:10 +00:00
Rafael Espindola
b28885057e cmake: pass -fvisibility-inlines-hidden if it is supported. In a
Release+Asserts build with -DBUILD_SHARED_LIBS=ON, the install
directory goes from 72MB to 70MB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148530 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-20 04:07:48 +00:00
NAKAMURA Takumi
de0cfe81b4 Tweak CMake build on Cygwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146725 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-16 06:21:08 +00:00
Dylan Noblesmith
f931261b51 cmake: work with CMake < 2.8.5
CMake versions 2.8.4 and earlier were giving this error since r146323:
"string end index: -1 is out of range 0 - 6"

Passing -1 as the length of the desired substring was a new feature
added in CMake 2.8.5:
http://www.cmake.org/Bug/view.php?id=10740

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146372 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 13:06:25 +00:00
Chandler Carruth
4fd061e4d9 Use a simpler and more reliable command for converting from HEAD to
commit-ish. Funny thing, they have a command designed for this. ;]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146325 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-10 10:18:47 +00:00
Chandler Carruth
78304a9131 Teach the VCS detection to set some root-level variables with the raw
revision and git commit data extracted. This will be used in the Clang
CMake build to avoid trying to re-detect the information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146324 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-10 10:04:38 +00:00
Chandler Carruth
1f8bd3057e At the request of Michael Spencer, make the VCS version detection logic
in CMake a bit more handy. Previously we would get such charming
versions as the following for revision NNNN and commit-ish XXXXX:
  3.1svnsvn-rNNNN
  3.1svngit-svn-rNNNN
  3.1svngit-svn-XXXXX

The mechanism selecting betwene the latter two was particularly odd, and
didn't work with all of the ways git-svn repos are set up apparently. It
also misses an important point -- both the revision *and* the git commit
might be relevant when working on a local branch some distance from
mainline. The new logic does several things:

1) It strips the redundant initial 'svn'.
2) It always looks for a git-svn revision number base, and when found
   includes it in the version.
3) If the git commit-ish for the current HEAD is not exactly that
   revision number, it is also included.

The resulting strings should roughly be:
  3.1svn-rNNNN
  3.1git-svn-rNNNN
  3.1git-svn-rNNNN-XXXXX

Suggestions on formatting etc always welcome. =] I've only looked at the
LLVM version string here, not Clang's (yet).

Note that the commit-ish reported is *not* terribly accurate. It updates
when 'cmake' is run, not when the binary is built. Still, it may be
better than nothing, especially if people have fairly long-lived git
repos and branches. This is not a new limitation, just didn't want
anyone to be surprised.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146323 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-10 09:41:13 +00:00
Daniel Dunbar
d782bae970 build/CMake: Finish removal of add_llvm_library_dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145420 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 19:25:30 +00:00
Daniel Dunbar
288bc5cdd0 build/cmake: Switch to using llvm-build computed dependencies.
- I verified locally that the current dependency lists are identical.
 - This makes add_llvm_library_dependencies() a no-op. I'll remove it once this
   change passes the bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145355 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 01:31:52 +00:00
NAKAMURA Takumi
2b37946051 Fix CRT selection logic when using CMake NMake generator.
CMAKE_CONFIGURATION_TYPES is only set on Visual Studio generators.  For NMake CMAKE_BUILD_TYPE is used instead.

Patch by EJose Fonseca!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143898 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-06 23:37:22 +00:00
Daniel Dunbar
c8f399d0c7 build/cmake: Move all the user controllable options into top-level CMakeLists
for consistency.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143728 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-04 19:04:35 +00:00
Chandler Carruth
a71b7b0911 Fix a typo noticed by Peter Collingbourne. No one depends on this
working today, but it shouldn't corrupt state for some poor soul to
debug later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143545 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 16:55:57 +00:00
Chandler Carruth
1bfc9f8ff2 The TableGen parts of the CMake build are seriously broken. This fixes
one aspect of them by having them use the (annoying, if not broken)
proper library dependency model for adding the LLVMTableGen library as
a dependency. This could manifest as a link order issue in the presence
of separate LLVM / Clang source builds with CMake and a linker that
really cares about such things.

Also, add the Support dependency to llvm-tblgen itself so that it
doesn't rely on TableGen's transitive Support dependency. A parallel
change for clang-tblgen will be forthcoming.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143531 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-02 05:03:06 +00:00
NAKAMURA Takumi
e2aa5d53db Add -D__STDC_FORMAT_MACROS to use PRIx64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141663 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11 12:51:44 +00:00
NAKAMURA Takumi
11b8a00a26 cmake/modules/HandleLLVMOptions.cmake: Reorder __STDC_CONSTANT_MACROS and __STDC_LIMIT_MACROS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141662 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11 12:51:36 +00:00
Peter Collingbourne
de8f33c199 Build system infrastructure for multiple tblgens.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141266 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 01:51:51 +00:00
Eric Christopher
627445f3e6 Rename LLVM_MULTITHREADED define and fix build without threads.
Patch by Arrowdodger.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140064 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19 20:43:23 +00:00
Chandler Carruth
4c07bfb219 Complete the removal of FindBison from CMake. Noticed this when browsing
some CMake patch backlog...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139107 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-04 23:29:12 +00:00
NAKAMURA Takumi
a69179d768 CMake: [MSVC] Suppress C4551 'function call missing argument list'.
(void)static_func; it is used as idiom in llvm source tree to suppress "Unused static function" warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137800 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17 01:28:30 +00:00
NAKAMURA Takumi
1387d969e4 cmake/modules/FindBison.cmake: It must be unneeded any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137715 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16 11:10:54 +00:00
Chandler Carruth
c58247da70 Remove yet another buried and hidden implicit dependency: every single
sub-library for the targets depended on the core target CodeGen library.
This completely undermined the careful work to separate the those
libraries, especially the MC-layer ones. This surfaced as circular
dependencies when the libraries were built as shared libraries where
CMake doesn't allow cycles.

This should fix PR10537. I'll watch the bots to see if there is fallout
on other platforms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136565 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-30 08:47:05 +00:00
Chandler Carruth
2e1513d9cd Make my attempt to build up global deps variables actually utilize
globally scoped constructs. Also, round-trip these dependencies through
the LLVMConfig.cmake.in file thata is used by CMake-based clients of
"installed" (or built) LLVM trees.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136543 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-29 23:52:01 +00:00
Chandler Carruth
ac03e736c7 Rewrite the CMake build to use explicit dependencies between libraries,
specified in the same file that the library itself is created. This is
more idiomatic for CMake builds, and also allows us to correctly specify
dependencies that are missed due to bugs in the GenLibDeps perl script,
or change from compiler to compiler. On Linux, this returns CMake to
a place where it can relably rebuild several targets of LLVM.

I have tried not to change the dependencies from the ones in the current
auto-generated file. The only places I've really diverged are in places
where I was seeing link failures, and added a dependency. The goal of
this patch is not to start changing the dependencies, merely to move
them into the correct location, and an explicit form that we can control
and change when necessary.

This also removes a serialization point in the build because we don't
have to scan all the libraries before we begin building various tools.
We no longer have a step of the build that regenerates a file inside the
source tree. A few other associated cleanups fall out of this.

This isn't really finished yet though. After talking to dgregor he urged
switching to a single CMake macro to construct libraries with both
sources and dependencies in the arguments. Migrating from the two macros
to that style will be a follow-up patch.

Also, llvm-config is still generated with GenLibDeps.pl, which means it
still has slightly buggy dependencies. The internal CMake
'llvm-config-like' macro uses the correct explicitly specified
dependencies however. A future patch will switch llvm-config generation
(when using CMake) to be based on these deps as well.

This may well break Windows. I'm getting a machine set up now to dig
into any failures there. If anyone can chime in with problems they see
or ideas of how to solve them for Windows, much appreciated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136433 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-29 00:14:25 +00:00
Oscar Fuentes
3f01f673e5 Updated cmake library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136327 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-28 02:33:33 +00:00
Chandler Carruth
fcf5a8341f Still more library dependency updates. This reflects the ever decreasing
dependence on CodeGen layers and backends from the MC layers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136024 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-26 00:09:11 +00:00
Chandler Carruth
b35552d440 Clean up a pile of hacks in our CMake build relating to TableGen.
The first problem to fix is to stop creating synthetic *Table_gen
targets next to all of the LLVM libraries. These had no real effect as
CMake specifies that add_custom_command(OUTPUT ...) directives (what the
'tablegen(...)' stuff expands to) are implicitly added as dependencies
to all the rules in that CMakeLists.txt.

These synthetic rules started to cause problems as we started more and
more heavily using tablegen files from *subdirectories* of the one where
they were generated. Within those directories, the set of tablegen
outputs was still available and so these synthetic rules added them as
dependencies of those subdirectories. However, they were no longer
properly associated with the custom command to generate them. Most of
the time this "just worked" because something would get to the parent
directory first, and run tablegen there. Once run, the files existed and
the build proceeded happily. However, as more and more subdirectories
have started using this, the probability of this failing to happen has
increased. Recently with the MC refactorings, it became quite common for
me when touching a large enough number of targets.

To add insult to injury, several of the backends *tried* to fix this by
adding explicit dependencies back to the parent directory's tablegen
rules, but those dependencies didn't work as expected -- they weren't
forming a linear chain, they were adding another thread in the race.

This patch removes these synthetic rules completely, and adds a much
simpler function to declare explicitly that a collection of tablegen'ed
files are referenced by other libraries. From that, we can add explicit
dependencies from the smaller libraries (such as every architectures
Desc library) on this and correctly form a linear sequence. All of the
backends are updated to use it, sometimes replacing the existing attempt
at adding a dependency, sometimes adding a previously missing dependency
edge.

Please let me know if this causes any problems, but it fixes a rather
persistent and problematic source of build flakiness on our end.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136023 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-26 00:09:08 +00:00
Chandler Carruth
093b8cabbc Check in updated CMake dependencies after Evan's latest round of
refactorings. Several places that shouldn't have dependend on Target no
longer do. Also almost all of the CodeGen dependencies have gone away
for the MCDisassembler. Others add reasonable dependencies within the
target-specific layers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135977 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-25 21:25:07 +00:00
Oscar Fuentes
d7808d23ad While building a LLVM target, put the current source directory on the
header search path.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135952 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-25 20:17:01 +00:00
Oscar Fuentes
ddfb69cd47 CMake: generalize the system that creates custom targets for
tablegenning to all libraries and executables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135908 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-25 14:11:55 +00:00
Chandler Carruth
48ac8e9be7 Move TargetRegistry.cpp from lib/Support to lib/Target where it belongs.
The header file was already properly located. The previous need for it
in Support had to do with the version string printing which was fixed in
r135757.

Also update build dependencies where libraries that needed the
functionality of the Target library (in the form of the TargetRegistry)
were picking it up via Support. This is pretty pervasive, essentially
every TargetInfo library (ARMInfo, etc) uses TargetRegistry, making it
depend on Target. All of these were previously just sneaking by.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135760 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-22 08:16:53 +00:00
Chandler Carruth
5509403bb2 Update the CMake library dependencies. These shifts are the result of
Evan's recent refactorings (I believe). Specifically, MCDisassembler no
longer depends on Target, and ARMDisassembler no longer depends on
CodeGen. The added dependencies from ARMAsmParser to ARMDesc looks
correct based on header file inclusion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135759 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-22 08:05:47 +00:00
Chandler Carruth
806cea5629 The *MCAsmInfo.cpp files use ADT/Triple code, so add the Support dep.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135239 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-15 02:34:03 +00:00
Chandler Carruth
4afa2b842b Major update to CMake build to reflect changes in r135219 in the
backend. Moved some MCAsmInfo files down into the MCTargetDesc
sublibraries, removed some (i suspect long) dead files from other parts
of the CMake build, etc. Also copied the include directory hack from the
Makefile.

Finally, updated the lib deps. I spot checked this, and think its
correct, but review appreciated there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135234 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-15 00:40:52 +00:00
NAKAMURA Takumi
70902ea2df cmake/modules/LLVMLibDeps.cmake: Update since r135184.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135211 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14 23:12:02 +00:00
NAKAMURA Takumi
4455397122 cmake/modules/LLVMLibDeps.cmake: Update to appease cmake builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134696 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-08 10:45:15 +00:00
Chandler Carruth
b2760f82b1 Fix CMake build's library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134658 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07 23:45:45 +00:00
Oscar Fuentes
a8504111f6 Update CMake library dependencies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134616 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07 16:33:00 +00:00
Oscar Fuentes
fdfd40b5f1 Update CMake library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133859 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-25 02:10:19 +00:00
Rafael Espindola
1189027f9d Fix cmake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133830 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-24 22:01:28 +00:00
Andrew Trick
f2a58425cd lit support for REQUIRES: asserts.
Take #2. Don't piggyback on the existing config.build_mode. Instead,
define a new lit feature for each build feature we need (currently
just "asserts"). Teach both autoconf'd and cmake'd Makefiles to define
this feature within test/lit.site.cfg. This doesn't require any lit
harness changes and should be more robust across build systems.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133664 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22 23:23:19 +00:00
Andrew Trick
dc9c76aca6 Added LLVM_BUILD_MODE to cmake so that lit supports tests with REQUIRES: {buildmode}.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133205 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 22:19:20 +00:00
Rafael Espindola
320ce564b3 Fix cmake dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131943 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-24 00:58:06 +00:00
Rafael Espindola
ed1d0ac57d Another try at fixing cmake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131608 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-19 00:13:04 +00:00
Rafael Espindola
7205d431f1 Revert my previous patch. The cmake build had already been fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131606 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-19 00:02:45 +00:00
Rafael Espindola
e37234739e Fix the cmake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131602 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-18 23:56:40 +00:00
Oscar Fuentes
104e99256d Handle gcc-compatible compilers (such as clang) the same way we handle
gcc.

Fixes PR9886.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131181 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-11 13:53:08 +00:00
Nick Lewycky
bcffb1fbb8 Rename profile_rt.so to libprofile_rt.so under configure+make (it already was
under cmake).

Add libprofile_rt.a so that we can tell clang to link against it in --coverage
mode. Also turn it on by default in cmake builds.

Oscar, this touches a change you made for EXCLUDE_FROM_ALL support -- I think
I've done the right thing, but please let me know (or fix and commit) if not!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130470 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29 02:12:06 +00:00
Oscar Fuentes
ab92d1e1c2 Honor LLVM_BUILD_RUNTIME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130199 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 14:55:27 +00:00
Francois Pichet
05a5ff1f00 Disable warning C4181: "qualifier applied to reference type; ignored"
This was causing a flooding of warnings with MSVC 2008. This warning was removed in MSVC 2010.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129737 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19 00:03:17 +00:00
Chris Lattner
7a2bdde0a0 Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 05:18:47 +00:00
Oscar Fuentes
c2475e8ece Export LLVM_TARGETS_WITH_JIT in LLVMConfig.cmake.in. Without this,
component names such as "engine" do not expand to "jit" and hence to
the native target libraries for external users.

Thanks to arrowdodger for reporting and diagnosing the problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129444 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-13 15:25:31 +00:00
Oscar Fuentes
ff688a1f6e CMake: remove some unnecesary code and ToDos.
Patch by arrowdodger!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129274 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-11 14:52:39 +00:00
Oscar Fuentes
3447b4f01b CMake: support for using LLVM from client projects with find_package.
Patch by arrowdodger!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129247 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-10 16:17:49 +00:00
Oscar Fuentes
e7510c2e96 Rename LLVMConfig.cmake to LLVM-Config.cmake. The *Config.cmake naming
scheme is used by the functionality related to find_package.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128889 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 17:02:48 +00:00
Oscar Fuentes
f63ea6fefc Fix typos on LLVM.cmake. Export LLVM_ON_UNIX & LLVM_ON_WIN32.
Patch by arrowdodger!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128789 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-03 16:12:38 +00:00
Oscar Fuentes
c2db19ebf4 Fix assignment of -fPIC to CMAKE_C_FLAGS. Configure llvm-config.in.in
with the contents of CMAKE_C(XX)_FLAGS too, else `llvm-config
--c(xx)flags' doesn't tell the absolute truth.

This comes from PR9603 and is based on a patch by Ryuta Suzuki!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128727 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-01 19:36:06 +00:00
Matt Beaumont-Gay
55037def6b Revert accidental change to LLVMLibDeps.cmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128499 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-29 22:42:41 +00:00
Matt Beaumont-Gay
471232884a Quiet a gcc warning about changed name lookup rules
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128497 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-29 22:25:36 +00:00
Oscar Fuentes
23f0bfeda9 Fixed the build of Clang's unit tests on MinGW. Also removed some
unnecesary conditionals and introduced a new convenience function.

The problem was that the list of libraries for Clang's unit tests was
<clang libraries> <system libraries> <llvm libraries>. As the llvm
libraries references symbols defined on the system libraries, those
were reported as undefined.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128484 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-29 20:51:08 +00:00
Oscar Fuentes
db3480c432 Supports building with a list of targets that does not contain
X86. Fixes PR9533.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128154 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-23 17:42:13 +00:00
Oscar Fuentes
c943a9aa4f Updated library dependencies.
Now we can remove RuntimeDyld from the LLVM_LINK_COMPONENTS of
tools/lli. CMakeLists.txt LLVM_LINK_COMPONENTS shall not differ from
its companion Makefile LINK_COMPONENTS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128069 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-22 03:58:55 +00:00
Oscar Fuentes
1dbf6f5ab4 Build the new RuntimeDyld library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128035 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21 23:07:53 +00:00
Oscar Fuentes
89234e1e28 Removed workaround for unspecified build problem on MinGW.
Tested that MinGW/MSYS builds fine without that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128033 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21 22:53:51 +00:00
Oscar Fuentes
c12acc7fe7 Update CMake library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127956 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-19 22:52:13 +00:00
Oscar Fuentes
6704415206 is_llvm_target_library: recognize libraries without the LLVM prefix.
Without this cmake fails at configuration when some target pass
"native" on LLVM_LINK_COMPONENTS and that is expanded to "X86".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127679 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-15 14:53:53 +00:00
Oscar Fuentes
879d3a98a2 Whe we build a shared library, add its list of used libraries to the
link command.

Fixed a pair of IF expressions too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127546 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-12 16:48:54 +00:00
Oscar Fuentes
5eae24e199 Process some link components that map to other expandable components
before the main loop. This is necessary because the loop ignores the
items added to `link_components' after it is entered.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127333 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-09 14:44:46 +00:00
Oscar Fuentes
f88befd9ee Remove remnant of my experimentation with CMake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127244 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-08 13:30:52 +00:00
Oscar Fuentes
0dddbc3d1b Support for parallel compilation (/MP) when using the VS IDE.
Patch by Erik Olofsson!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126847 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-02 17:47:37 +00:00
Talin
bdcd766028 Added missing va_end().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126759 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-01 18:00:49 +00:00
Oscar Fuentes
7d83dc0424 Export TARGET_TRIPLE on LLVM.cmake. It is necessary for running tests
on Clang when it builds using LLVM as an external library.

Fixes PR9293.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126309 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23 11:28:40 +00:00
Oscar Fuentes
50b284666f CMake: remove unnecessary variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126224 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22 15:40:20 +00:00
NAKAMURA Takumi
afcf6ac7a8 CMake: Define LLVM_INCLUDE_TESTS in cmake/modules/HandleLLVMOptions.cmake. It affects testing stuff on clang-standalone build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126107 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21 03:21:06 +00:00
NAKAMURA Takumi
0f300475be CMake: Fix breakage on clang standalone build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126106 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21 03:20:57 +00:00
Oscar Fuentes
0b85d07d46 Put targets on folders, if the IDE supports the feature.
Requires CMake 2.8.3 or newer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126092 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-20 22:06:10 +00:00
Oscar Fuentes
00d78f1348 Use explicit add_subdirectory's for LLVM target sublibraries instead
of testing for its presence at cmake time.

This way the build automatically regenerates the makefiles when a svn
update brings in a new sublibrary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-20 02:55:27 +00:00
Jeffrey Yasskin
9bb83e4f48 Add the PARSE_ARGUMENTS CMake macro to LLVM so I can use it to clean
up add_clang_unittest's calling convention.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126031 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19 18:01:15 +00:00
Oscar Fuentes
6d857ca4d7 Move library stuff out of the toplevel CMakeLists.txt file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125968 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18 22:06:14 +00:00
Oscar Fuentes
742c0dd8fd New library: LLVMX86Utils.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125786 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17 22:26:11 +00:00
NAKAMURA Takumi
cbf023d7ec CMake: LLVM_LIT_TOOLS_DIR is needed only on Win32 hosts to use GnuWin32 tools.
Unixen and Cygwin do not need it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125277 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-10 10:29:42 +00:00
NAKAMURA Takumi
b656a11c70 CMake: Add the new option LLVM_LIT_TOOLS_DIR. It can specify "Path to GnuWin32 tools".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125173 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-09 04:18:58 +00:00
Oscar Fuentes
cf9efa5966 Install only *.cmake files. Don't install .svn directory.
Fixes PR9159.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125001 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-07 02:22:23 +00:00
Oscar Fuentes
dd70cd8933 Don't define NDEBUG on MSVC_IDE and XCode builds. Fixes PR9155.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124985 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-06 19:07:06 +00:00
Oscar Fuentes
5a858e3416 Moved more stuff to HandleLLVMOptions.cmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124968 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-05 19:08:42 +00:00
Oscar Fuentes
ba6ac91995 Add the tablegenned files to the `clean' target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124854 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-04 03:47:50 +00:00
Oscar Fuentes
d538e24922 Changes for building Clang and others using LLVM as an external
library.

Installs tblgen (required by Clang).

Translates handling of user settings and platform-dependant options to
its own file, where it can included by another project.

Installs the .cmake files required by projects like Clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124816 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-03 20:57:36 +00:00
NAKAMURA Takumi
76422f3e08 cmake/*: Add svn:eol-style=native and fix CRLF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124793 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-03 11:41:27 +00:00
Oscar Fuentes
d73e5751b2 Don't show -pedantic, -W and -Wall on the output of
llvm-config --cflags --cxxflags --cppflags

We shouldn't impose those flags on people who use llvm-config for
building their own projects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124399 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-27 19:29:48 +00:00
Oscar Fuentes
927d8aee53 Made llvm_replace_compiler_option more robust. Use it on
llvm_process_sources.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123232 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11 12:31:34 +00:00
Oscar Fuentes
53bf3ee82b Don't use -O3 on Mingw, as people report it as unreliable. Use -O2
instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123028 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-07 20:31:03 +00:00
Oscar Fuentes
5b30f0a7eb TableGen.cmake: sometimes the .td file is not in the current directory
(clang/include/clang/Basic/StmtNodes.td, for instance, is tablegenned
from clang/include/clang/AST/CMakeLists.txt) so it is not contained on
the list of all .td files on the current source directory which is
used as the DEPENDS of the custom command. We must add the .td file to
the DEPENDS list of the custom command. Otherwise some .inc files are
not regenerated when the corresponding .td file changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122768 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-03 20:01:32 +00:00
Oscar Fuentes
0895db0abf LLVMProcessSources: add .def files along with .h files to targets for
the benefit of project-based generators (VS, XCode, etc).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122749 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-03 16:59:52 +00:00
Oscar Fuentes
449d4e12c9 Propagate to parent scope changes made to CMAKE_CXX_FLAGS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122692 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-02 12:30:18 +00:00
Oscar Fuentes
023c63351e CMake (MSVC): cmake automatically adds the /EHsc and /GR compiler
options. If we are building with exceptions/rtti disabled, we replace
/EHsc with /EHs-c- and /GR with /GR-, respectively. If we just add the
disabling options we get warnings like this:

cl : Command line warning D9025 : overriding '/EHs' with '/EHs-'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-31 19:10:49 +00:00
Oscar Fuentes
711042839c Fixes file extension for loadable modules on OS X.
Patch by Wesley Peck!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122395 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22 08:30:17 +00:00
Oscar Fuentes
ec33e8dcd6 Update cmake library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122239 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20 09:47:08 +00:00
Wesley Peck
59b4127029 Reverting commit to LLVMLibDeps that was inadvertently done in 121649.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121651 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-12 22:28:51 +00:00
Wesley Peck
a7c7b9dccb The ADD and ADDK (and all variants) instructions where flip-flopped in the MBlaze backend. This bug fix makes 64-bit math work on the MBlaze backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121649 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-12 22:02:31 +00:00
NAKAMURA Takumi
51c06bf6ad Add dependency to "make check".
cmake/modules/AddLLVM.cmake: Add empty "phony" target in add_llvm_loadable_module() even if loadable module were not supported.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121455 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10 02:15:36 +00:00
Francois Pichet
b361452ef9 Disable C++ exception handling on MSVC.
Total size of bin\Release on disk goes from 82.9 MB to 74.2 MB. (~10% saving)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120908 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 14:30:22 +00:00
Francois Pichet
a785a6b5c5 Disable RTTI on Windows.
Total size of bin\Release on disk goes from 83.6 MB to 81.8MB. (~2% saving)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120901 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 09:42:30 +00:00
Michael J. Spencer
e93e10a0dd Update library dependencies changed in the System -> Support merge.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120308 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-29 19:28:48 +00:00
Wesley Peck
4b04713423 Implement ELF object file writing support for the MBlaze backend. Its not perfect yet, but it works for many tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119952 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-21 22:06:28 +00:00
Oscar Fuentes
78786f9eb6 Updated library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119592 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-18 00:12:27 +00:00
Jim Grosbach
7eee9ab97e Revert inadvertant checkin of CMake libdeps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119355 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-16 18:14:41 +00:00
Jim Grosbach
7911916cf7 ARM conditional mov encoding fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119354 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-16 18:13:42 +00:00
Oscar Fuentes
6098168963 Updated CMake library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119076 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:17:08 +00:00
Wesley Peck
41400da31e 1. Finishing MBlaze MC asm parser test cases
2. Parsing .word directive in MBlaze asm parser
3. Fixing hack where memory instructions reversed order of last two parameters
4. Fixing many improperly encoded instructions
5. Support parsing special instructions (MFS,MTS,etc.)
6. Removing unused functions from inst printer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118941 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:30:17 +00:00
Wesley Peck
0a67d92938 Adding working version of assembly parser for the MBlaze backend
Major cleanup of whitespace and formatting issues in MBlaze backend


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118434 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-08 19:40:01 +00:00
Wesley Peck
a06038369b Adding disassembler to the MicroBlaze backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117420 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-27 00:23:01 +00:00
Oscar Fuentes
01a575e2fc Loadable modules are not supported on Cygwin. PR 6655.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117130 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-22 19:03:24 +00:00
Oscar Fuentes
8c0cd08459 Avoid stalled file dependency when tablegenning.
Patch by Frits van Bommel!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117113 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-22 17:37:42 +00:00
Oscar Fuentes
c54ca79854 Don't try to guess svn version when current path is a symlink.
See PR 8473.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-22 17:16:26 +00:00
Oscar Fuentes
8a116e0b3e Teach CMake to only touch tablegen-generated files if anything
actually changed.

Patch by Frits van Bommel!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117102 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-22 16:20:10 +00:00
Wesley Peck
4da992aeba Adding initial AsmParser implementation for the MBlaze backend. It is
mostly based on the ARM AsmParser at this time and is not particularly
functional.

Changed the MBlaze data layout from:
    "E-p:32:32-i8:8:8-i16:16:16-i64:32:32-f64:32:32-v64:32:32-v128:32:32-n32"
to:
    "E-p:32:32:32-i8:8:8-i16:16:16"
because the MicroBlaze doesn't have i64, f64, v64, or v128 data types.

Cleaned up the MBlaze source code:
    1. The floating point register class has been removed. The
       MicroBlaze does not have floating point registers. Floating
       point values are simply stored in integer registers.
    2. Renaming the CPURegs register class to GPR to reflect the
       standard naming.
    3. Removing a lot of stale code from AsmPrinter after
       the conversion to InstPrinter.
    4. Simplified sign extended loads by marking them as
       expanded in ISelLowering.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117054 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 19:48:38 +00:00
Wesley Peck
4e9141fd4c Recommit 116986 with capitalization typo fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116993 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 03:57:26 +00:00
Wesley Peck
60e7127e86 Reverting the commit 116986. It was breaking the build on llvm-x86_64-linux though it
compiles on OS X. I'll ensure that it builds on a linux machine before committing
again.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116991 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 03:34:22 +00:00
Wesley Peck
13a949071c Major update of the MicroBlaze backend. The new features are:
1. A delay slot filler that searches for valid instructions
       to fill the delay slot with. Previously NOPs would always
       be inserted into delay slots.
    2. Support for MC based instruction printer added.
    3. Support for MC based machine code generation and ELF
       file generation. ELF file generation does not yet
       completely work as much of the ELF support infrastructure
       is still x86/x86-64 specific.
    4. General clean up of the MBlaze backend code. Much of the
       tablegen code has been cleanup and simplified.

Bug Fixes:
    1. Removed duplicate periods from subtarget feature descriptions.
    2. Many of the instructions had bad machine code information
       in the tablegen files. Much of this has been fixed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116986 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 03:09:55 +00:00
Oscar Fuentes
f0c55a9b97 Build with RTTI and exceptions disabled. Only in GCC for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116682 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-17 02:26:16 +00:00
Oscar Fuentes
00a9618458 When building shared libraries, link to required system libraries.
PR 8375

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116479 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-14 15:54:41 +00:00
Oscar Fuentes
72731a6c19 GetTargetTriple.cmake: detect MinGW 64 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116424 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-13 20:15:08 +00:00
Chris Lattner
60cb528246 Per discussion with Sanjiv, remove the PIC16 target from mainline. When/if
it comes back, it will be largely a rewrite, so keeping the old codebase
in tree isn't helping anyone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116190 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-11 05:44:40 +00:00
Jim Grosbach
e86222864f Update LLVMLibDeps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115583 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 00:35:16 +00:00
Oscar Fuentes
858a19b3f3 Update library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115404 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02 03:04:43 +00:00
Oscar Fuentes
38e0b4689c Export LLVM_ALL_TARGETS in LLVM.cmake. It is used by LLVMConfig.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115039 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-29 15:28:55 +00:00
Oscar Fuentes
44258d1da6 Simplified LLVMConfig.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114998 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-28 22:38:39 +00:00
Oscar Fuentes
c577c271b1 Use the canonical library name for library PIC16Passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114953 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-28 14:24:47 +00:00
Oscar Fuentes
4dbb2dbf76 Added library LLVMPIC16passes to CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114952 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-28 14:02:45 +00:00
Oscar Fuentes
b2c70cfc71 Added PTX target to the CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114951 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-28 14:02:36 +00:00
Oscar Fuentes
2af470f0e4 Removed remnant target library dependencies from LLVMLibDeps.cmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114826 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27 13:49:41 +00:00
Oscar Fuentes
8eb6294e64 Updated LLVMLibDeps.cmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114825 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27 13:33:17 +00:00
Oscar Fuentes
066de857f8 Reverting "CMake: Don't include tools, unittets, or examples as
available targets unless LLVM_INCLUDE_X is ON. LLVM_BUILD_X implies
LLVM_INCLUDE_X"

It breaks the configuration phase when cmake is invoked without
parameters, it is too complex for the purpose and introduces an
incovenience for the user (as both LLVM_BUILD_X and LLVM_INCLUDE_X
must set to OFF for not including X on the build)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114795 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-25 20:25:25 +00:00
Michael J. Spencer
4b794c9a99 CMake: Don't include tools, unittets, or examples as available targets
unless LLVM_INCLUDE_X is ON. LLVM_BUILD_X implies LLVM_INCLUDE_X

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114747 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-24 19:10:51 +00:00
Oscar Fuentes
11f51ca6f9 Updated LLVMLibDeps.cmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114143 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-17 00:43:53 +00:00
Michael J. Spencer
3a210e2d30 Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally."
This reverts commit r113632

Conflicts:

	cmake/modules/AddLLVM.cmake

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113819 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-13 23:59:48 +00:00
Michael J. Spencer
1c4e934666 CMake: Fix mingw32 build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113676 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11 02:13:39 +00:00
Michael J. Spencer
4e9c939312 CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113632 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10 21:14:25 +00:00
Michael J. Spencer
3df9c6bbae CMake: Use the svn revision information from git-svn if available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113405 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-08 20:49:40 +00:00
Chandler Carruth
83944b7dbe Attempt to remove the MSIL backend from CMake as well based on Chris's r112375.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112464 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-30 07:25:54 +00:00
Oscar Fuentes
4d2d099e27 Updated CMake library dependencies. Removed unnecessary component name
from llvm-link/CMakeLists.txt

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 02:29:53 +00:00
Oscar Fuentes
91e0d7db81 Updated LLVMLibDeps.cmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111112 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-15 22:14:42 +00:00
Oscar Fuentes
a1f60b811e Updated the GenLibDeps -> LLVMLibDeps.cmake transformation example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111104 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-15 15:08:27 +00:00
Oscar Fuentes
e1fadb1dc6 CMake: corrections on LLVM.cmake external services.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110763 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 00:51:32 +00:00
Oscar Fuentes
ca3469e59e Update cmake library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110594 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 20:33:20 +00:00
Oscar Fuentes
8150d8d530 CMake: llvm_map_components_to_libraries now returns system libs too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110563 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 03:47:11 +00:00
Oscar Fuentes
6252e98709 CMake: system for providing llvm-config-like features to the user.
The user can use a cmake function for obtaining the LLVM libraries
corresponding to a list of LLVM components.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110560 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 03:26:43 +00:00
Oscar Fuentes
59d5145d7d When building from git, add ref-id to PACKAGE_VERSION
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110301 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-05 02:22:51 +00:00
Oscar Fuentes
02a8f76d58 New system for choosing CRT type on MSVC.
Is setted on a per build type basis. This is useful for generators
that comprise several build types, i.e. VC++ solutions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110296 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-05 01:25:48 +00:00
Oscar Fuentes
efb59d28c5 CMake: Change somme target library names:
XCore->XCoreGen
PIC16->PIC16CodeGen

After updating your working copy, the first build will fail because it
is using the old library dependencies. Start the build again and it
will work fine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110127 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-03 17:40:31 +00:00
Oscar Fuentes
ee99317554 CMake: add version control info to PACKAGE_VERSION, if available.
Adds "svn" or "git", depending on the VCS used. If svn, adds the
revision number as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110121 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-03 17:28:09 +00:00
Oscar Fuentes
5510e5e9b5 Improve discrimination of unknown libraries from ignored targets on
LLVMConfig.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110065 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-02 21:24:12 +00:00
Oscar Fuentes
9ac47c51c5 explicit_map_components_to_libraries now does not complain when there
is a dependence on an LLVM target that is not included on the build.

When LLVM_TARGETS_TO_BUILD didn't include all the targets, the
function emitted an error like

"Library LLVMArmParser not found in list of llvm libraries."


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110060 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-02 20:48:01 +00:00
Oscar Fuentes
8766b125a7 Updated LLVMLibDeps.cmake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110055 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-02 18:36:53 +00:00
Oscar Fuentes
ee56c42168 Prefix next' iterator operation with llvm::'.
Fixes potential ambiguity problems on VS 2010.

Patch by nobled!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110029 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-02 06:00:15 +00:00
Douglas Gregor
ba6fc63eb2 Allow absolute paths in LLVM_TARGET_DEFINITIONS for CMake's TableGen rule
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106219 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17 15:17:07 +00:00
Jeffrey Yasskin
f28411f732 Tell Valgrind when we modify already-executed machine code so it knows
to re-instrument the code.  We depend on the system valgrind.h to
avoid adding a new license.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98529 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 04:57:55 +00:00
Daniel Dunbar
ea5c2bac26 Update CMake LibDeps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94185 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22 18:14:14 +00:00
Daniel Dunbar
8ee15c1069 Update CMake LibDeps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92540 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-04 23:17:24 +00:00
Douglas Gregor
f1c3a8650a Fix CMake build for InstCombine changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92519 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-04 21:58:55 +00:00
Daniel Dunbar
b310839aed CMake: Update lib deps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-19 21:27:30 +00:00
Sean Callanan
8ed9f51663 Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit
incarnations), integrated into the MC framework.  

The disassembler is table-driven, using a custom TableGen backend to 
generate hierarchical tables optimized for fast decode.  The disassembler 
consumes MemoryObjects and produces arrays of MCInsts, adhering to the 
abstract base class MCDisassembler (llvm/MC/MCDisassembler.h).

The disassembler is documented in detail in

- lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime)
- utils/TableGen/DisassemblerEmitter.cpp (table emitter)

You can test the disassembler by running llvm-mc -disassemble for i386
or x86_64 targets.  Please let me know if you encounter any problems
with it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91749 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-19 02:59:52 +00:00
Oscar Fuentes
c595e6ca0a CheckAtomic.cmake: Put all C++ code inside CHECK_CXX_SOURCE_COMPILES.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90685 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-06 00:06:33 +00:00
Oscar Fuentes
87e98075cc Fix for atomic intrinsics detection when using MSVC.
Patch by Michael Beck!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90683 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-05 23:19:33 +00:00
Oscar Fuentes
03d34caed7 * cmake/modules/LLVMLibDeps.cmake: Updated library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90169 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30 23:48:51 +00:00
Daniel Dunbar
f87ea4dd9a Add the rest of the build system logic for optional target disassemblers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89841 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25 04:46:58 +00:00
Oscar Fuentes
e389446d01 CMake: Updated library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89637 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-23 00:40:39 +00:00
Oscar Fuentes
7be498e6e2 CMake: Do not try to install a target before it is defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89636 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-23 00:32:42 +00:00
Oscar Fuentes
b8352de551 CMake: generate targets for tools and examples even when
LLVM_BUILD_TOOLS or LLVM_BUILD_EXAMPLES are OFF.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89635 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-23 00:21:43 +00:00
Oscar Fuentes
470fb51961 Use CMAKE_DL_LIBS instead of raw library name. Fixes bug 5536.
Patch by Tobias Grosser!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19 23:21:43 +00:00
Douglas Gregor
8781416858 CMake: Add Darwin-specific linker flags for building loadable modules
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86684 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10 15:30:33 +00:00
Oscar Fuentes
c5e1ae1313 CMake: Support for building llvm loadable modules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86656 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10 02:45:37 +00:00
Daniel Dunbar
5ba331a2ae Fix CMake reporting of target triple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86419 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07 23:52:27 +00:00
Oscar Fuentes
d442ab87b3 CMake: Report an error if there is an unknown .cpp file in a source
directory.

This is useful in case someone who works with the config&make build
system forgot to add a file to its CMakeLists.txt. Instead of
obtaining undefined references at link time, cmake will complain at
configure time on the first build after a svn update.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85817 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-02 19:11:03 +00:00
Daniel Dunbar
d1478006d2 Update CMake dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85013 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-24 20:32:43 +00:00
Oscar Fuentes
8e6323c8b9 Updated cmake library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84564 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-19 23:00:00 +00:00
Daniel Dunbar
e443525f35 Update CMake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82097 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17 00:06:48 +00:00
Daniel Dunbar
5ea51ade50 Update CMake dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 05:22:54 +00:00
Daniel Dunbar
c1f329bf2b Update lib deps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-04 05:07:44 +00:00
Oscar Fuentes
b0fc781115 CMake: updated library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80531 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 01:58:50 +00:00
Oscar Fuentes
e029305bb0 CMake: Updated library dependencies and list of source files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79876 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 23:59:15 +00:00
Douglas Gregor
66aa9b1c2f CMake: Don't use copy_if_different for TableGen output, because it does not work with IDE targets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79732 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 07:00:18 +00:00
Duncan Sands
dfcb9bfcc0 Fix cmake build on non-x86 targets. Patch by
Xerxes Rånby.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79419 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 12:41:52 +00:00
Oscar Fuentes
4113f2e1f1 CMake: Updated library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79223 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 04:23:50 +00:00
Oscar Fuentes
22624b1d8e CMake: LLVMConfig assigns LLVMX86 to the `native' component
name. Updated LLVM_LINK_COMPONENTS of Kaleidoscope.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79219 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 01:41:46 +00:00
Oscar Fuentes
c23a8d133c CMake: Discriminate MINGW, MSYS, CYGWIN: does not try to build llvm-config under mingw without msys.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79202 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 20:50:41 +00:00
Benjamin Kramer
0bbbf7ecae Fix the MSVC build again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79186 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 09:44:27 +00:00
Oscar Fuentes
69e973d79b CMake: Hopefully this will fix the build on VS. I can't replicate the
failure with VS 9.0, nmake and cmake 2.6.4. The buildbot output does
not show the patch level of cmake, it just says 2.6.

Sadly, parallel builds are broken due to recent changes on LLVM Target
libraries and its auxiliaries (TargetInfo, AsmPrinter, AsmParser). I
have a patch for stablishing the correct dependencies, but cmake is
buggy and generates makefiles that can't handle them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79180 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 07:44:02 +00:00
Oscar Fuentes
b78829ee38 CMake: Revert r79144. It reverted a change necessary for correct
parallel builds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79177 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 05:16:43 +00:00
Benjamin Kramer
04ef5428cd Revert 78996. It was breaking MSVC builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79144 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 21:57:01 +00:00
Richard Osborne
1c8c15f6d2 Move XCore AsmPrinter to XCore/AsmPrinter directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79094 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 12:53:15 +00:00
Oscar Fuentes
9c546cd946 CMake: Updated library dependence info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79038 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 20:30:18 +00:00
Oscar Fuentes
94d38e561b CMake: Automatic regeneration of the library dependencies file.
It doesn't stop or reconfigure the build, though, so the user will see
a broken build that magically succeeds at the next attempt. It is
technically possible to halt the build with a helpful message, and
even to automatically restart the build using the new dependencies as
it we did when llvm-config was used by cmake for learning
dependencies. This is left on the TODO list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79004 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 16:59:41 +00:00
Oscar Fuentes
3d3ed36572 CMake: Builds main LLVM Target library before its sublibraries. This
way we ensure that tablegenned files exist before they are #include'd
by the LLVM Target sublibraries. Required for parallel builds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78996 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 05:17:24 +00:00
Oscar Fuentes
d8b1b9a3c1 CMake: Use LLVM_COMMON_DEPENDS on add_llvm_executable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78990 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 04:38:57 +00:00
Oscar Fuentes
5905bc4fd3 CMake: updated library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78976 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 01:55:28 +00:00
Oscar Fuentes
c16f16505a CMake: Fixed sed script for translating library dependencies from
LibDeps.txt format to LLVMLibDeps.cmake format.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 04:18:10 +00:00
Oscar Fuentes
fdb9677ae9 CMake: Localized dependency on Perl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 04:16:19 +00:00
Oscar Fuentes
8e3864f99c CMake: Rely on llvm_config again for obtaining the list of required
libraries for an executable.

Now LLVMConfig uses a new system for sorting library dependencies, as
the list of dependent libraries for each entry of FinalLibDeps.txt no
longer is topologically sorted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78787 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 04:05:26 +00:00
Oscar Fuentes
9bbdf64c98 CMake: updated library dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 03:57:26 +00:00
Oscar Fuentes
f2a5e95cba CMake: cmake/modules/LLVMLibDeps.cmake: Use unix line endings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 03:36:43 +00:00
Oscar Fuentes
b034cc4058 CMake: Moved hard-coded library dependencies to its own file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78784 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 03:32:44 +00:00
Oscar Fuentes
9f817031f1 CMake: target triple for MSVC on Windows 64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 00:04:12 +00:00
Dan Gohman
d2cb3d2c32 Remove the IA-64 backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76920 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 00:30:09 +00:00
Daniel Dunbar
092a9dda2d Sketch support for target specific assembly parser.
- Not fully enabled yet, need a configure regeneration.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76230 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 20:42:00 +00:00
Xerxes Ranby
6215c6227e Implement cmake LLVM_MULTITHREADED gcc atomic builtin checks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76221 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 19:22:41 +00:00
Daniel Dunbar
3434312a17 Regerate CMake library dependencies.
- Added a sed script to do this in the comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75872 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 00:43:36 +00:00
Daniel Dunbar
fef02e9af2 Kill off cmake magic to force linking.
- This isn't needed anymore, we require clients to call the appropriate
   initialization routines using TargetSelect.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75871 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 00:35:05 +00:00
Daniel Dunbar
ab52ae8388 Tweak CMake component lookup, I misunderstood what was happening here.though. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75757 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 07:52:36 +00:00
Daniel Dunbar
8cca8f98bb Teach Makefiles & CMake to link in the <TARGET>Info library when linking the
TARGET component.
 - Also, updated some CMake library dependencies, it is still missing some
   though. :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 07:43:34 +00:00
Oscar Fuentes
d97ea308ed CMake: tablegen: Add .td files under the inlude/llvm directory
hierarchy to the list of dependencies.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75510 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13 21:35:00 +00:00
Douglas Gregor
4b73893d82 Add missing dependencies to the CMake build system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74161 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 05:03:06 +00:00
Douglas Gregor
343beeb386 Reinstate target dependencies on Table_gen targets in CMake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74003 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 21:05:21 +00:00
Douglas Gregor
8756a8db5b CMake: remove support for llvm-config-generated dependencies in the build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73979 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 18:30:17 +00:00
Douglas Gregor
bb3231f7c4 Eliminate some unused code in CMa'e add_llvm_target. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73970 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 17:58:51 +00:00
Douglas Gregor
7e9e36a23e Eliminate object-relinking support from CMake. Fixes PR 4429 and
cleans up the CMake-based build system a bit. Started by a patch from
Xerxes Rånby.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 17:57:35 +00:00
Oscar Fuentes
af0f65fe6a CMake: New variable LLVM_LIBDIR_SUFFIX.
Patch by Ingmar Vanhassel!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73216 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 02:49:53 +00:00
Oscar Fuentes
99b94892f5 CMake: Fixed parallel build problem related to native tblgen when
cross-compiling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73180 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-11 04:16:10 +00:00
Douglas Gregor
8eeb96d2d5 CMake: Use explicit dependencies for Xcode (as well as MSVC), to make
the CMake-generated Xcode project build properly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72883 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04 19:53:37 +00:00
Oscar Fuentes
1a53cbfb4a CMake: Set LIBS on llvm-config so we can query the system libraries
used by CMake with --ldflags.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72470 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27 15:49:33 +00:00
Oscar Fuentes
db917fe8aa CMake: Use libdl only when available. Fixes build on FreeBSD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72311 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-23 02:37:24 +00:00
Oscar Fuentes
69b20fd6f9 CMake: Use pthread library when requested and available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71116 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-06 20:42:04 +00:00
Oscar Fuentes
9a0107db72 CMake: defines and uses macro add_llvm_definitions for keeping track
of compiler parameters explicitly added by the build
specification. This macro replaces the cmake built-in
`add_definitions'.

Detects glibc and defines _GNU_SOURCE accordingly.

Resolves bug 3882.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68428 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-04 22:41:07 +00:00
Douglas Gregor
4752bd3b40 CMake: Build system fixes for XCode. llvm-config still causes us some serious trouble, but it's less serious than it used to be
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67056 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-16 22:53:26 +00:00