summaryrefslogtreecommitdiffstats
path: root/Modules/Platform/Linux.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-6/+6
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-25/+25
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* multiarch: Set CMAKE_LIBRARY_ARCHITECTURE_REGEX for Linux|Hurd|kFreeBSDModestas Vainius2011-06-131-1/+1
| | | | | | | | | * Fix linux CMAKE_LIBRARY_ARCHITECTURE_REGEX to support armel-linux-gnueabi. * Add CMAKE_LIBRARY_ARCHITECTURE_REGEX on kFreeBSD. * Add CMAKE_LIBRARY_ARCHITECTURE_REGEX on GNU (Hurd). Also regex is improved to support quadlets. Even if I have not seen this in the wild yet, reportedly they are possible.
* Teach find_(library|package) about Linux multiarch (#12037)Brad King2011-06-081-0/+3
| | | | | | | | | | | | | Implement support for multiarch as specified here: http://wiki.debian.org/Multiarch https://wiki.ubuntu.com/MultiarchSpec Detect the <arch> part of <prefix>/lib/<arch> from the implicit library search path from each compiler to set CMAKE_<lang>_LIBRARY_ARCHITECTURE. Define CMAKE_LIBRARY_ARCHITECTURE using one of these values (they should all be the same). Teach the find_library and find_package commands to search <prefix>/lib/<arch> whenever they would search <prefix>/lib.
* Remove GNU-specific flags from Linux.cmakeBrad King2009-12-041-3/+0
| | | | | | | | We remove the shared library compile/link flags "-fPIC" and "-shared" because they are not provided by all compilers on Linux. This allows us to drop code from the Linux-XL-*.cmake files that erases the bad flags. All other supported compilers already provide their correct flags for Linux in their own platform information files.
* Reduce duplication in Platform/<os>.cmake filesBrad King2009-12-021-3/+0
| | | | | | | | | | | | | Several platform-wide linker flag variables are defined in Modules/Platform/<os>.cmake files for C and then copied by the Modules/CMake<lang>Information.cmake file for each language. We now use this approach for the variables CMAKE_EXE_EXPORTS_${lang}_FLAG CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS to avoid duplication for multiple languages in each platform file.
* Split GNU compiler information filesBrad King2009-12-021-2/+0
| | | | | | | | | | | | | | This moves GNU compiler flags into new-style modules Compiler/GNU-<lang>.cmake Platform/<os>-GNU-<lang>.cmake We use language-independent helper modules Compiler/GNU.cmake Platform/<os>-GNU.cmake to define macros consolidating the information.
* Drop -rdynamic from Linux build rulesBrad King2009-12-011-1/+0
| | | | | | | | | | | | | | | This is a GNU-specific option that should not be specified for all compilers on Linux. It tells the GNU compiler to pass -export-dynamic to the linker to export symbols from executables for use by plugins. Since we provide the ENABLE_EXPORTS target property to do the same thing in a cross-platform way, there is no need to pass -rdynamic always. Since the option is not useful for GNU tools and breaks other tools on Linux we simply remove it from CMAKE_SHARED_LIBRARY_LINK_<lang>_FLAGS. This also allows us to stop setting the variable in other Linux compiler files just to erase the bad flag. See issue #9985.
* BUG: fix for bug 4772, enable_language should now work on linux with correct ↵Bill Hoffman2008-10-011-0/+2
| | | | flags
* ENH: Better linker search path computation.Brad King2008-02-211-0/+4
| | | | | | | | | | | | | - Use linker search path -L.. -lfoo for lib w/out soname when platform sets CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME - Rename cmOrderRuntimeDirectories to cmOrderDirectories and generalize it for both soname constraints and link library constraints - Use cmOrderDirectories to order -L directories based on all needed constraints - Avoid processing implicit link directories - For CMAKE_OLD_LINK_PATHS add constraints from libs producing them to produce old ordering
* ENH: Pass dependent library search path to linker on some platforms.Brad King2008-02-011-0/+1
| | | | | | | | | | | | | | | | - Move runtime path ordering out of cmComputeLinkInformation into its own class cmOrderRuntimeDirectories. - Create an instance of cmOrderRuntimeDirectories for runtime path ordering and another instance for dependent library path ordering. - Replace CMAKE_DEPENDENT_SHARED_LIBRARY_MODE with explicit CMAKE_LINK_DEPENDENT_LIBRARY_FILES boolean. - Create CMAKE_LINK_DEPENDENT_LIBRARY_DIRS boolean. - Create variables to specify -rpath-link flags: CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG - Enable -rpath-link flag on Linux and QNX. - Documentation and error message updates
* ENH: Rename SET_PROPERITES command to SET_PROPERTY and give it a more ↵Brad King2008-01-171-1/+1
| | | | powerful signature.
* ENH: Added global property FIND_LIBRARY_USE_LIB64_PATHS to allow lib64 paths ↵Brad King2007-06-271-0/+6
| | | | to be searched optionally. Turn off the feature on debian systems. This addresses debian report 419007.
* BUG: Detect debian with existence of /etc/debian_version so things work in a ↵Brad King2007-05-071-13/+3
| | | | chroot install. This is suggested in bug#4805.
* ENH: Added CMAKE_EXE_EXPORTS_C_FLAG and CMAKE_EXE_EXPORTS_CXX_FLAG to ↵Brad King2007-04-181-0/+2
| | | | support executables that export symbols.
* ENH: Added option CMAKE_INSTALL_SO_NO_EXE on linux to choose whether the ↵Brad King2007-04-101-0/+37
| | | | default permissions for shared libraries include the executable bit. This is necessary to support the conflicting policies of Debian and Fedora. These changes address bug#4805.
* ENH: Adding support to link specifically to an archive or a shared library ↵Brad King2006-09-151-0/+10
| | | | based on the file name specified. This fixes the problem of having -lfoo linking to libfoo.so even when it came from libfoo.a being specified.
* BUG: Fixed shared library version support for Fortran. This addresses bug#3558.Brad King2006-08-011-0/+1
|
* ENH: Cleanup link libraries. Remove -l from -ldlAndy Cedilnik2006-04-201-1/+1
|
* ENH: check in new find stuffBill Hoffman2006-03-021-0/+1
|
* ENH: major changes to support addition of languages from cmake modules ↵Bill Hoffman2004-09-221-3/+3
| | | | directory.
* ENH: more uniform approach to enable language, one step closer to being able ↵Bill Hoffman2004-08-261-2/+0
| | | | to enable a language without modifing cmake source code
* ENH: Using separate CMAKE_SHARED_LIBRARY_SONAME flags for C and CXX.Brad King2003-12-121-1/+2
|
* ENH: Adding implementation of shared library version support on UNIX. This ↵Brad King2003-11-261-0/+1
| | | | addresses the feature request described in bug#32.
* ENH: Moved caching of C*_FLAGS* settings down to ↵Brad King2002-11-081-1/+3
| | | | CMakeSystemSpecificInformation.cmake. The platform files can set the defaults on the first run, and then the settings are cached at the end.
* Complete rework of makefile generators expect troubleBill Hoffman2002-11-081-0/+7