summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* Create FortranCInterface_VERIFY functionBrad King2009-08-247-0/+124
| | | | | | | This function builds a simple test project using a combination of Fortran and C (and optionally C++) to verify that the compilers are compatible. The idea is to help projects report very early to users that the compilers specified cannot mix languages.
* Teach FortranCInterface to load outside resultsBrad King2009-08-242-162/+169
| | | | | | | | We split the main detection logic into a Detect.cmake support module and load it only when detection results are not already available. This allows results computed by the main project to be used in try-compile projects without recomputing them. The call to try_compile() need only to pass FortranCInterface_BINARY_DIR through the CMAKE_FLAGS option.
* Split SunPro compiler information filesBrad King2009-08-218-111/+71
| | | | | | This moves platform-independent SunPro compiler flags into separate "Compiler/SunPro-<lang>.cmake" modules. Platform-specific flags are left untouched.
* Split Intel compiler information filesBrad King2009-08-217-45/+63
| | | | | | This moves platform-independent Intel compiler flags into separate "Compiler/Intel-<lang>.cmake" modules. Platform-specific flags are left untouched.
* Teach FortranCInterface to verify languagesBrad King2009-08-201-0/+9
| | | | | This module requires both C and Fortran to be enabled, so error-out if they are not.
* Add Boost 1.39 & 1.40. Move ${Boost_INCLUDE_DIR}/lib to front of library ↵Philip Lowman2009-08-201-3/+4
| | | | search.
* Remove DownloadFile.cmake and UntarFile.cmake from the Modules directory. ↵David Cole2009-08-193-117/+130
| | | | Put functionality directly into ExternalProject.cmake itself so that these modules do not end up in the upcoming release of CMake.
* Find module for the Bullet physics enginePhilip Lowman2009-08-171-0/+75
|
* A find module for the Google C++ Testing FrameworkPhilip Lowman2009-08-171-0/+69
|
* Checking in the FindFLEX.cmake & FindBISON.cmake attached to Issue #4018 ↵Philip Lowman2009-08-132-0/+321
| | | | | | | | | after some minor improvements * Improved examples * Switched to FindPackageHandleStandardArgs * Cleaned up indentation * Sanitized else()/endif() blocks
* Fixes Issue #8994Philip Lowman2009-08-131-1/+1
|
* Find module for GnuTLS, the GNU Transport Layer Security library (Issue #9228)Philip Lowman2009-08-131-0/+58
|
* Improved error output and documentationPhilip Lowman2009-08-131-15/+32
| | | | | | * Fixed errant output when version number not found * Improved error output when REQUIRED is passed * Improved docs and example
* Quote the target name for Borland tlib toolBrad King2009-08-121-1/+1
| | | | | | | | | | | The Borland librarian tool "tlib" requires that the output target name be quoted if it contains the character '-' (and perhaps a few others). This commit restores the use of the TARGET_QUOTED rule variable replacement for this purpose. Otherwise no static library can have a '-' in its name. This problem was exposed by the 'Testing' test when it builds the pcStatic library with the '-dbg' suffix.
* Teach compiler id about VisualAge -> XL rebrandingBrad King2009-08-0713-11/+34
| | | | | | | IBM rebranded its VisualAge compiler to XL starting at version 8.0. We use the compiler id "XL" for newer versions and "VisualAge" for older versions. We now also recognize the "z/OS" compiler, which is distinct from XL.
* Move flag to Compiler/VisualAge-Fortran moduleBrad King2009-08-074-3/+1
| | | | | | The CMAKE_Fortran_DEFINE_FLAG value applies to the IBM Fortran compilers on all platforms. This moves the setting to the platform-independent compiler information file.
* Use NetBSD to initialize OpenBSD configurationBrad King2009-08-071-2/+1
| | | | | We teach Modules/Platform/OpenBSD.cmake to load NetBSD first since the platforms are so similar. This enables RPATH support on OpenBSD.
* Teach FortranCInterface about g77 manglingBrad King2009-08-061-0/+1
| | | | | The old GNU g77 Fortran compiler uses the suffix '__' for symbols containing an underscore in their name.
* Sort FortranCInterface global mangling symbolsBrad King2009-08-061-2/+2
| | | | | This just cleans up the list ordering so more entries can be added while keeping everything organized.
* Cleanup FortranCInterface for PGI and GCC 4.2Brad King2009-08-053-8/+10
| | | | | This documents the purpose of the extra my_module_.c and mymodule.c source files, and sorts the symbols.
* Teach FortranC interface for Intel, PGI, and gcc 4.2Bill Hoffman2009-08-053-2/+8
|
* Remove AddExternalProject.cmake. ExternalProject.cmake supercedes/replaces it.David Cole2009-08-051-669/+0
|
* Overhaul GetPrerequisites and BundleUtilities: make fixup_bundle do ↵David Cole2009-08-052-132/+264
| | | | | | something useful on Windows and Linux. Formerly, fixup_bundle was useful only on the Mac for making standalone bundle applications that could be drag-n-drop moved to anyplace in the file system. fixup_bundle is not just for the Mac any more. It will now analyze executable files on Windows and Linux, too, and copy necessary non-system dlls to the same folder that the executable is in. This should work with dlls that you build as part of your build and also with 3rd-party dlls as long as you give fixup_bundle the right list of directories to search for those dlls. Many thanks to Clinton Stimpson for his help in ironing out the details involved in making this work.
* Rewrite FortranCInterface moduleBrad King2009-08-0514-223/+471
| | | | | | | | | | | | | | | | | | | | This is a new FortranCInterface.cmake module to replace the previous prototype. All module support files lie in a FortranCInterface directory next to it. This module uses a new approach to detect Fortran symbol mangling. We build a single test project which defines symbols in a Fortran library (one per object-file) and calls them from a Fortran executable. The executable links to a C library which defines symbols encoding all known manglings (one per object-file). The C library falls back to the Fortran library for symbols it cannot provide. Therefore the executable will always link, but prefers the C-implemented symbols when they match. These symbols store string literals of the form INFO:symbol[<name>] so we can parse them out of the executable. This module also provides a simpler interface. It always detects the mangling as soon as it is included. A single macro is provided to generate mangling macros and optionally pre-mangled symbols.
* Pass Fortran90 test result to try-compileBrad King2009-07-302-28/+30
| | | | | | | This stores CMAKE_Fortran_COMPILER_SUPPORTS_F90 in the Fortran compiler information file CMakeFiles/CMakeFortranCompiler.cmake instead of in CMakeCache.txt. This file makes the result available to try-compile projects.
* Do not always propagate linker language preferenceBrad King2009-07-301-0/+1
| | | | | | | | | | | | The commit "Consider link dependencies for link language" taught CMake to propagate linker language preference from languages compiled into libraries linked by a target. It turns out this should only be done for some languages, such as C++, because normally the language of the program entry point (main) should be used. We introduce variable CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES to tell CMake whether a language should propagate its linker preference across targets. Currently it is true only for C++.
* Set CMAKE_<LANG>_VERBOSE_FLAG variables for PGIBrad King2009-07-293-0/+3
| | | | | | We set the variables to contain "-v", the verbose front-end output option for PGI compilers. This enables detection of implicit link libraries and directories for these compilers.
* Set CMAKE_<LANG>_VERBOSE_FLAG variables for IntelBrad King2009-07-293-0/+3
| | | | | | We set the variables to contain "-v", the verbose front-end output option for Intel compilers. This enables detection of implicit link libraries and directories for these compilers.
* Recognize linker commands without pathsBrad King2009-07-291-1/+1
| | | | | | | This teaches the implicit link line parsing code to recognize link lines that do not have a full path to the linker executable. At least one version of the Intel compiler on Linux invokes the linker as just "ld" instead of "/usr/bin/ld".
* BUG: Parse implicit link editor -z*extract optionsBrad King2009-07-281-1/+4
| | | | | | | | The Sun Fortran compiler passes -zallextract and -zdefaultextract to the linker so that all objects from one of its archives are included in the link. This teaches the implicit options parser to recognize the flags. We need to pass them explicitly on C++ link lines when Fortran code is linked.
* ENH: Install all Modules and TemplatesBrad King2009-07-242-15/+0
| | | | | | | This removes the file-wise installation rules for Modules and Templates and instead installs the whole directories. This approach is much less error-prone. The old approach was left from before CMake had the install(DIRECTORY) command.
* BUG: Install new fortran compiler id source.Brad King2009-07-241-1/+1
| | | | | The extension of the id source file was changed from .F90 to .F so this fixes the install rule.
* BUG: Skip implicit link information on XcodeBrad King2009-07-231-1/+2
| | | | | | | Xcode adds extra link directories that point at the build tree, so detection of implicit link directories is not reliable. Since Fortran is not supported in Xcode we will not need implicit link information yet anyway.
* ENH: Implicit link info for C, CXX, and FortranBrad King2009-07-2320-0/+108
| | | | | | | | | | | | | This teaches CMake to detect implicit link information for C, C++, and Fortran compilers. We detect the implicit linker search directories and implicit linker options for UNIX-like environments using verbose output from compiler front-ends. We store results in new variables called CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES The implicit libraries can contain linker flags as well as library names.
* ENH: Load platform-independent per-compiler filesBrad King2009-07-233-0/+16
| | | | | | | This teaches the language configuration modules to load per-compiler information for each language using the compiler id but no system name. They look for modules named "Compiler/<id>-<lang>.cmake". Such modules may specify compiler flags that do not depend on the platform.
* ENH: just converted case to lower for the bookKen Martin2009-07-211-17/+17
|
* BUG: Fix include path detection with SDLDIR env var (issue #9086).Philip Lowman2009-07-181-17/+5
| | | | Also removed some superfluous search paths.
* ENH: Also add ARCHLIB/CORE to include search paths so perl.h can be found on ↵Philip Lowman2009-07-181-0/+1
| | | | non-standard install prefixes
* ENH: Improve detection of perl.h/libperl, issue #7898Philip Lowman2009-07-181-36/+199
|
* BUG: fix relative paths from different drives on WindowsClinton Stimpson2009-07-161-0/+3
|
* BUG: Re-fix issue #8682. Use new variable CPACK_NSIS_PACKAGE_NAME in ↵David Cole2009-07-162-3/+7
| | | | appropriate places rather than CPACK_NSIS_DISPLAY_NAME. CPACK_NSIS_DISPLAY_NAME is the Add/Remove control panel's description string for the installed package. Using it as the "Name" of the NSIS installer package made the CMake installer itself use really long strings in the installer GUI. This fix still allows for the original intent of the first fix for #8682 -- the ability to separate the installer name from the default install directory, but it uses a new/different variable to achieve the separation.
* ENH: remove debug messageBill Hoffman2009-07-151-1/+0
|
* ENH: do not use /INCREMENTAL:YES with VS 10 compilerBill Hoffman2009-07-151-4/+16
|
* ENH: Check _SGI_COMPILER_VERSION for compiler idBrad King2009-07-143-3/+3
| | | | | | Some SGI compilers define _SGI_COMPILER_VERSION in addition to the old _COMPILER_VERSION preprocessor symbol. It is more distinctive, so we should check it in case the old one is ever removed.
* BUG: Avoid SGI preprocessor bug for Fortran IdBrad King2009-07-141-2/+10
| | | | | | | | | | | | | | | | | The SGI preprocessor /usr/lib/cpp produces bad output on this code: #if 1 A #elif 1 B #else C #endif Both 'A' and 'C' appear in the output! We work around the problem by using '#elif 1' instead of '#else'. This fixes detection of the SGI Fortran compiler id in -o32 mode.
* STYLE: add documentation for MACRO_ADD_FILE_DEPENDENCIES()Alexander Neundorf2009-07-141-6/+12
| | | | Alex
* ENH: Create Fortran ABI detection frameworkBrad King2009-07-132-0/+17
| | | | | This invokes CMakeDetermineCompilerABI.cmake for Fortran at the same place it is already done for C and CXX.
* ENH: Check tarball filename in ep_addBrad King2009-07-131-2/+5
| | | | | | This teaches the ExternalProject module to check the download URL file name. If it is not a tarball (.tar, .tgz, .tar.gz) it is an error because UntarFile does not yet understand other archive formats.
* BUG: Teach UntarFile to delete dir on errorBrad King2009-07-131-0/+1
| | | | | | When tarball extraction fails we should still cleanup the temporary extraction directory. Otherwise the next attempt will create a new directory and the first one will never be removed.
* BUG: Fix rpath-link flag for SunPro C++ on LinuxBrad King2009-07-131-0/+1
| | | | | | | | | This teaches Modules/Platform/Linux-SunPro-CXX.cmake the -rpath-link flag. The SunPro C++ compiler does not have a '-Wl,' option, so we just pass the flag directly. This problem was exposed by the ExportImport test now that it links an executable through the C++ compiler with the -rpath-link flag.