summaryrefslogtreecommitdiffstats
path: root/llvm/cmake/modules
Commit message (Collapse)AuthorAgeFilesLines
...
* cmake: Remove -D NDEBUG from CFLAGS as well as CXXFLAGSReid Kleckner2014-05-191-7/+10
| | | | | | This silences ~7 warnings on .c files in the LLVM build. llvm-svn: 209163
* Disable -Wcomment when building with GCC.Evgeniy Stepanov2014-05-061-0/+11
| | | | | | | | GCC version of -Wcomment is not compatible with ascii art graph diagrams. Reverts r207629. llvm-svn: 208073
* Teach add_sphinx_target() to respect the LLVM_INSTALL_TOOLCHAIN_ONLY CMakeDan Liew2014-04-281-9/+11
| | | | | | option. llvm-svn: 207450
* Added Sphinx documentation generation to CMake build system.Reid Kleckner2014-04-182-0/+79
| | | | | | | | | | | | | | | | | | | | | The option LLVM_ENABLE_SPHINX option enables the "docs-llvm-html", "docs-llvm-man" targets but does not build them by default. The following CMake options have been added that control what targets are made available SPHINX_OUTPUT_HTML SPHINX_OUTPUT_MAN If LLVM_BUILD_DOCS is enabled then the enabled docs-llvm-* targets will be built by default and if ``make install`` is run then docs-llvm-html and docs-llvm-man will be installed (tested on Linux only). The add_sphinx_target function is in its own file so it can be included by other projects that use Sphinx for their documentation. Patch by Daniel Liew <daniel.liew@imperial.ac.uk>! llvm-svn: 206655
* Teach LLVMConfigVersion.cmake to behave as find_package() expects.Eric Christopher2014-04-162-1/+16
| | | | | | Patch by Brad King llvm-svn: 206426
* Add support for a patch version to the cmake system.Eric Christopher2014-04-162-0/+2
| | | | | | Patch by Brad King llvm-svn: 206425
* AddLLVM: Mute the prefix "lib" in SHARED on win32.NAKAMURA Takumi2014-04-101-0/+5
| | | | | | | - LLVMSupport.dll - libLLVMSupport.dll.a llvm-svn: 205969
* Remove cmake module support for Visual C++ 2010 (MSVC10)Yaron Keren2014-03-251-15/+3
| | | | | | but keep the MSVC11 (Visual C++ 2012) support. llvm-svn: 204706
* Disable Visual C++ warning 4722 about aborting a destructor,Yaron Keren2014-03-251-1/+2
| | | | | | it has no value for us. llvm-svn: 204704
* [CMake][cygming] Disable --out-implib from executables.NAKAMURA Takumi2014-03-161-0/+9
| | | | | | It doesn't make sense even with --export-all-symbols. llvm-svn: 204017
* [CMake] Put -Werror to CMAKE_CXX_FLAGS instead of using add_llvm_definitions()Alexey Samsonov2014-03-131-3/+1
| | | | | | | | add_definitions shouldn't really be used for compiler flags, and the variable LLVM_DEFINITIONS is not appropriately used at the moment, e.g. it's not exported to LLVMConfig.cmake llvm-svn: 203792
* [CMake] Enable a bunch of Xcode build settings that correspond to warnings ↵Ted Kremenek2014-03-131-0/+23
| | | | | | | | | | | | | | | | that are for the most part enabled by default either by Clang or -Wall. I personally build with these settings enabled all the time, and it is clearer to see the actual warning flags (e.g., -Wuninitialized) get passed by Xcode rather than seeing -Wno-uninitialized followed by -Wall (the latter canceling out the former) and figuring out what is going on. Xcode will ignore build settings it doesn't understand, so this will work on possibly older versions of Xcode that don't support all of these settings. llvm-svn: 203760
* Use -std=gnu++11 on cygwin and mingw.Rafael Espindola2014-03-121-1/+7
| | | | | | | | | Without this common features like off_t and strdup are missing. This should bring back those bots. Configure bits by Meador Inge. llvm-svn: 203701
* [CMake] add_llvm_target(): No need to include TABLEGEN_OUTPUT in source list.NAKAMURA Takumi2014-03-041-1/+1
| | | | llvm-svn: 202862
* [C++11] Switch the CMake option from LLVM_ENABLE_CXX11 (default on) toChandler Carruth2014-03-011-3/+10
| | | | | | | | LLVM_ENABLE_CXX1Y (default *off*). =D C++98 is dead. Long live C++11. I don't exactly recommend using C++1y just yet though... llvm-svn: 202567
* With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore.Rafael Espindola2014-02-281-10/+0
| | | | llvm-svn: 202510
* [CMake] llvm_add_library(SHARED|STATIC): Fix broken OUTPUT_NAME for *_static.NAKAMURA Takumi2014-02-281-1/+1
| | | | llvm-svn: 202454
* [CMake] Work around to use target_link_libraries(PUBLIC) in ↵NAKAMURA Takumi2014-02-261-0/+7
| | | | | | | BUILD_SHARED_LIBS mode. FIXME: It may be PRIVATE since SO knows its dependent libs. llvm-svn: 202261
* [CMake] Move LLVMBUILD_LIB_DEPS stuff from add_llvm_library (and ↵NAKAMURA Takumi2014-02-261-13/+30
| | | | | | LLVm-Config) to llvm_add_library to centralize target_link_libraries. llvm-svn: 202260
* [CMake] Use target_link_libraries(INTERFACE|PRIVATE) on CMake-2.8.12 to ↵NAKAMURA Takumi2014-02-262-3/+16
| | | | | | | | | | | | | | | | | | increase opportunity for parallel build. target_link_libraries(INTERFACE) doesn't bring inter-target dependencies in add_library, although final targets have dependencies to whole dependent libraries. It makes most libraries can be built in parallel. target_link_libraries(PRIVATE) is used to shaared library. Each dependent library is linked to the target.so, and its user will not see its grandchildren. For example, - libclang.so has sufficient libclang*.a(s). - c-index-test requires just only libclang.so. FIXME: lld is tweaked minimally. Adding INTERFACE in each library would be better thing. llvm-svn: 202241
* TableGen.cmake: Functionalize and reformat.NAKAMURA Takumi2014-02-231-16/+17
| | | | llvm-svn: 201972
* Simplify linking to system librariesNAKAMURA Takumi2014-02-233-47/+7
| | | | | | | | | | | | | | | | | | | | | | | | | The LLVMSupport library implementation consolidates all dependencies on system libraries. Move the logic gathering system libraries out of 'cmake/modules/LLVM-Config.cmake' and into 'lib/Support/CMakeLists.txt'. Use the target_link_libraries() command there to tell CMake about the link dependencies of the LLVMSupport implementation. CMake will automatically propagate this to all targets that link LLVMSupport directly or indirectly. We still need to build knowledge of system library dependencies into 'llvm-config'. Store the list of libraries needed in a property on LLVMSupport and teach 'tools/llvm-config/CMakeLists.txt' to retrieve it from there. Drop all calls to 'link_system_libs' and 'get_system_libs' from our CMake code. Replace their implementations with a warning that explains the calls are no longer necessary. Also drop from 'LLVMConfig.cmake' the HAVE_* and related variables that were published there only to allow 'get_system_libs' to run outside our build process. Contributed by Brad King. llvm-svn: 201969
* Prune debug message in AddLLVM.cmake.NAKAMURA Takumi2014-02-221-1/+0
| | | | llvm-svn: 201932
* [CMake] llvm_add_library: Add dependencies also to objlibs as workaround of ↵NAKAMURA Takumi2014-02-211-0/+13
| | | | | | | | CMake issue 14747. http://www.cmake.org/Bug/view.php?id=14747 llvm-svn: 201855
* [CMake] Introduce "llvm_add_library(SHARED STATIC)" to build both shared lib ↵NAKAMURA Takumi2014-02-211-2/+36
| | | | | | | | | | | | | | and static lib simulataneously. llvm_add_library(foo SHARED STATIC DEPENDS <dependent targets...> LINK_LIBS <required libraries...> ) It generates both foo (foo.so) and foo_static(foo.a) and both of them depend on DEPENDS and LINK_LIBS. Then, also obj.foo is generated. obj.foo depends on DEPENDS, but doesn't depend on LINK_LIBS. llvm-svn: 201854
* Teach LLVM-Config to use logical target names (2/2)NAKAMURA Takumi2014-02-214-8/+11
| | | | | | | | | | | | | The module still needs to collect the list of all available libraries in order to satisfy the 'all' component. Provide this in the package configuration file, 'LLVMConfig.cmake', as a LLVM_AVAILABLE_LIBS variable. (A variable is scoped better than a global property.) Since this won't be set for our own build, fall back to looking up the LLVM_LIBS property to get the value when it is not set. Contributed by Brad King. llvm-svn: 201853
* Teach LLVM-Config to use logical target names (1/2)NAKAMURA Takumi2014-02-211-15/+7
| | | | | | | | | | | LLVM library names are now available as logical CMake targets both to our own build and to application CMake code. Replace use of 'list(FIND)' with a simple 'if(TARGET)' to determine whether a library is available. Contributed by Brad King. llvm-svn: 201852
* [CMake] Move intrinsics_gen to lib/Target out of add_public_tablegen_target.NAKAMURA Takumi2014-02-201-1/+1
| | | | | | add_public_tablegen_target is used somewhere. llvm-svn: 201787
* LLVMExports.cmake: Add System libs $(LIBS) to LLVMSupport, corresponding to ↵NAKAMURA Takumi2014-02-161-0/+2
| | | | | | r201077. llvm-svn: 201489
* LLVMExports.cmake: Exclude gtest since they are not installed.NAKAMURA Takumi2014-02-161-1/+1
| | | | | FIXME: gtest might be included if external project could refer to the build tree. llvm-svn: 201488
* [CMake] Let llvm_add_library(MODULE) check capability of loadable module.NAKAMURA Takumi2014-02-131-6/+10
| | | | | | | On unsupported platforms, llvm_add_library(MODULE) doesn't create any targets. Caller may be responsible to check and add extra target properties. llvm-svn: 201320
* [CMake] Move the target property PREFIX from add_llvm_loadable_module() to ↵NAKAMURA Takumi2014-02-131-2/+4
| | | | | | llvm_add_library(). llvm-svn: 201318
* [CMake] llvm_add_library(MODULE) may use CMAKE_MODULE_LINKER_FLAGS instead ↵NAKAMURA Takumi2014-02-132-6/+5
| | | | | | | | of target property LINK_FLAGS. I mis-dropped Darwin's link flags (in clang side) since r201073. llvm-svn: 201317
* [CMake] LLVM_PLUGIN_EXT: Use CMAKE_SHARED_LIBRARY_SUFFIX rather than ↵NAKAMURA Takumi2014-02-131-1/+3
| | | | | | | | CMAKE_SHARED_MODULE_SUFFIX in llvm tree. FIXME: llvm/test may be aware of LLVM_PLUGIN_EXT, like as clang/test does. FIXME: CMAKE_*_SUFFIX may be set in HandleLLVMOptions if those variables could be writable, rather than to set one as target properties. llvm-svn: 201316
* [CMake] llvm_add_library: Add handling of the parameter ADDITIONAL_HEADERS ↵NAKAMURA Takumi2014-02-131-3/+7
| | | | | | | | | | | to pass through to process_source. I was insightless then about unknown optional parameters. (Consider that LINK_LIBS foo bar ADDITIONAL_HEADERS qux quux) Suggested by Michael Kruse. Thanks! llvm-svn: 201283
* Teach tablegen() macro to check needed variablesNAKAMURA Takumi2014-02-121-0/+11
| | | | | | | | | | | This macro depends on several variables to be set in the calling context. Check them and report an error if they are not set. Without this, custom commands may be silently specified that will fail at build time. Patch by Brad King. llvm-svn: 201229
* cmake: Do not export targets when installing toolchain onlyReid Kleckner2014-02-101-2/+2
| | | | | | Patch by Brad King! llvm-svn: 201111
* [CMake] LLVMSupport should be responsible to provide system_libs.NAKAMURA Takumi2014-02-102-10/+0
| | | | llvm-svn: 201077
* [CMake] Introduce llvm_add_library().NAKAMURA Takumi2014-02-101-25/+75
| | | | | | | | | | | | | | | | | | | | | | | - MODULE;SHARED;STATIC STATIC by default w/o BUILD_SHARED_LIBS. SHARED by default w/ BUILD_SHARED_LIBS. - OUTPUT_NAME name Corresponds to OUTPUT_NAME in target properties. - DEPENDS targets... Same semantics as add_dependencies(). - LINK_COMPONENTS components... Same as the variable LLVM_LINK_COMPONENTS. - LINK_LIBS lib_targets... Same semantics as target_link_libraries(). - ADDITIONAL_HEADERS (implemented in LLVMProcessSources) May specify header files for IDE generators. I suggest llvm_add_library() may be used for inter-project add_library stuff and also suggest add_***_library() may be used project-specific. Please be patient that llvm_add_library might be ambiguous against add_llvm_library. llvm-svn: 201072
* [CMake] LLVMProcessSources.cmake: Prune add_file_dependencies to ↵NAKAMURA Takumi2014-02-101-8/+0
| | | | | | | | | ${TABLEGEN_OUTPUT}. I am sure it'd not be required any more. In trunk, all of tablegen's users depend on ${TABLEGEN_OUTPUT} as not file dependency but inter-target dependency. llvm-svn: 201063
* [CMake] Re-apply r200765, "Get rid of llvm_config() to expand dependencies."NAKAMURA Takumi2014-02-101-7/+1
| | | | | | | | CMake's target_link_libraries() will manage dependencies with Brad's LLVMConfig improvements. Configuration time may be reduced by a few seconds. llvm-svn: 201062
* Remove shell comment in the middle of a single-line command.Bob Wilson2014-02-091-2/+0
| | | | | | | You can't put a comment in the middle of a command like this. This is invalid shell syntax and breaks the build. llvm-svn: 201057
* Whitespace.NAKAMURA Takumi2014-02-091-4/+4
| | | | llvm-svn: 201054
* Provide CMake package modules in install treeNAKAMURA Takumi2014-02-091-0/+106
| | | | | | | | | | | | | | | | | | | | | | Teach the Makefile build system to generate and install CMake modules LLVMConfig.cmake and LLVMConfigVersion.cmake so that applications that build with CMake can use 'find_package(LLVM)' even when LLVM is not built with CMake. These modules tell such applications about available LLVM libraries and their dependencies. Run llvm-config to generate the list of libraries and use the results of llvm-build to generate the library dependencies. Use sed to perform substitutions in the LLVMConfig.cmake.in and LLVMConfigVersion.cmake.in sources that our CMake build system uses. Teach the Makefile build system to generate the LLVMExports.cmake file with content similar to that produced by the CMake install(EXPORT) command. Extend llvm-build with an option to generate the library dependencies fragment for this file. Contributed by Brad King. llvm-svn: 201053
* Load exported lib and exe targets from LLVMConfigNAKAMURA Takumi2014-02-092-0/+6
| | | | | | | | | | | | | Teach each package configuration file to load the LLVMExports file for its corresponding tree. This will allow application CMake code to use logical library and executable target names from LLVM as if they were in our own build process (e.g. LLVMSupport). CMake will have enough information to propagate LLVM library link dependencies automatically while configuring applications. Contributed by Brad King. llvm-svn: 201051
* Export lib and exe build target names from build treeNAKAMURA Takumi2014-02-093-0/+10
| | | | | | | | | | | | | | | Record every logical target that we install with install(TARGETS) in a global LLVM_EXPORTS property. Then use the export(TARGETS) command to provide a "LLVMExports.cmake" file that exports logical targets for import into applications directly from our build tree. The "LLVMExports.cmake" file is not meant for direct inclusion by application code but should be included by "LLVMConfig.cmake" in a future change. Contributed by Brad King. llvm-svn: 201050
* Export lib and exe build target names from install treeNAKAMURA Takumi2014-02-093-2/+10
| | | | | | | | | | | | | | | Use the install(TARGETS) command EXPORT option for every library and executable that we install with LLVM. Then use the install(EXPORT) command to provide a "LLVMExports.cmake" file that exports logical targets for import into applications from our install tree. The "LLVMExports.cmake" file is not meant for direct inclusion by application code but should be included by "LLVMConfig.cmake" in a future change. Contributed by Brad King. llvm-svn: 201049
* Provide LLVMConfig in both build and install treeNAKAMURA Takumi2014-02-092-8/+45
| | | | | | | | | | | | | | | | | | Create separate package configuration files "LLVMConfig.cmake" for the LLVM build and install trees so that each can have information specific to its tree. Configure each with the corresponding include, lib, and cmake directories. Include the "LLVM-Config" API modules directly from the configured cmake modules directory. In the install tree, compute the installation prefix relative to the file location. In the build tree, provide information specific to the build tree for use by tools like Clang that can build externally against the LLVM build tree. Prefix such values in "LLVM_BUILD_" and comment them as such. Contributed by Brad King. llvm-svn: 201048
* Teach LLVMConfig to avoid modifying CMAKE_MODULE_PATHNAKAMURA Takumi2014-02-092-13/+13
| | | | | | | | | | | | Do not modify this value on the application's behalf and just ensure API modules are always available next to the LLVMConfig module. This is already the case in the install tree so use file(COPY) to make it so in the build tree. Include the LLVM-Config API module from next to the LLVMConfig location. Contributed by Brad King. llvm-svn: 201047
* De-duplicate references to share/llvm/cmake pathNAKAMURA Takumi2014-02-091-3/+4
| | | | | | | | | Use a LLVM_INSTALL_PACKAGE_DIR variable to hold the path and reference it where necessary. Contributed by Brad King. llvm-svn: 201046
OpenPOWER on IntegriCloud