Commit Graph

3648 Commits

Author SHA1 Message Date
Modestas Vainius e1409ac59b Support building shared libraries or modules without soname (#13155)
Add a boolean target property NO_SONAME which may be used to disable
soname for the specified shared library or module even if the platform
supports it.  This property should be useful for private shared
libraries or various plugins which live in private directories and have
not been designed to be found or loaded globally.

Replace references to <CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG> and
hard-coded -install_name flags with a conditional <SONAME_FLAG> which is
expanded to the value of the CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG
definition as long as soname supports is enabled for the target in
question.  Keep expanding CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG in
rules in case third party projects still use it.  Such projects would
not yet use NO_SONAME so the adjacent <TARGET_SONAME> will always be
expanded.  Make <TARGET_INSTALLNAME_DIR> NO_SONAME aware as well.  Since
-install_name is soname on OS X, this should not be a problem if this
variable is expanded only if soname is enabled.

The Ninja generator performs rule variable substitution only once
globally per rule to put its own placeholders.  Final substitution is
performed by ninja at build time.  Therefore we cannot conditionally
replace the soname placeholders on a per-target basis.  Rather than
omitting $SONAME from rules.ninja, simply do not write its contents for
targets which have NO_SONAME.  Since 3 variables are affected by
NO_SONAME ($SONAME, $SONAME_FLAG, $INSTALLNAME_DIR), set them only if
soname is enabled.
2012-04-30 11:50:27 -04:00
David Cole 194545643a Merge topic 'check_include_files_output'
5adb6b7 CheckIncludeFiles: Shorten check description message
2012-04-10 15:19:51 -04:00
David Cole 23dcf6ecd0 Merge topic 'new-boost-versions'
63d4960 FindBoost: add support for 1.49 and 1.50
2012-04-10 15:19:42 -04:00
David Cole 104f7cc00a Merge topic 'osx-search-paths'
6190415 OS X: Mark find_program results as advanced
d9edf46 OS X: Use correct extra path when searching for applicaton bundles (#13066)
98b9a7f OS X: Use OSX_DEVELOPER_ROOT for app search path (#13066)
2012-04-10 15:19:31 -04:00
David Cole 082fba0662 Merge topic 'CPackNSIS-smallDocTypoFix'
fcf265f CPackNSIS: Rewrite variable documentation to make it more readable.
8fe0da5 Fix some doc typo and add an undocumented var.
2012-04-10 15:19:22 -04:00
Brad King 5adb6b7a34 CheckIncludeFiles: Shorten check description message
Since commit 44d007b6 (CheckIncludeFiles: fix status output, 2012-02-01)
check_include_files reports the list of files tested instead of the name
of the variable storing the result.  Some projects incrementally test
and concatenate very long lists leading to long messages that do not
provide much information.  Users report confusion especially when the
lines wrap.

For lists of more than two files produce messages of the format

 Looing for N include files first.h, ..., last.h

where N is the list length and "..." is literal.  Leave the log file
entries and cache entry description unchanged as they should have the
full detail of the check performed.
2012-04-09 15:57:02 -04:00
Rolf Eike Beer 63d4960aef FindBoost: add support for 1.49 and 1.50
Boost 1.49 has already be released. Add this and the next to come version
number to the search list.
2012-04-07 10:21:02 +02:00
David Cole 6190415436 OS X: Mark find_program results as advanced
Avoid cluttering the gui with variables nearly nobody needs
to see.
2012-04-06 11:15:39 -04:00
David Cole d9edf46760 OS X: Use correct extra path when searching for applicaton bundles (#13066)
The parent commit added a search path relative to OSX_DEVELOPER_ROOT.
But with Xcode 4.3 the nested Applications folder is in a different
relative location compared to that root. This commit makes the intent
of the previous commit work with older and newer Xcode directory layouts.

Furthermore, it only adds paths that exist to the search path.
2012-04-06 11:14:37 -04:00
David Cole fcf265fe1a CPackNSIS: Rewrite variable documentation to make it more readable.
And avoid parsing problems at the first "."
2012-04-05 16:13:24 -04:00
David Cole ff575b229d Merge topic 'dev/granular-test-targets-ninja'
d5318e0 Create granular targets for Ninja generators too
2012-04-03 15:59:02 -04:00
David Cole a6100082b9 Merge topic 'CPackPM-fixAmazonLinux'
3a0c60d Override topdir from rpm command line seems necessary on Amazon linux.
2012-04-03 15:58:33 -04:00
Ben Boeckel d5318e00cb Create granular targets for Ninja generators too 2012-03-29 13:46:15 -04:00
David Cole a3b7caaf5f Merge topic 'AutomocProperCMakeEscaping_13018'
9b32475 automoc: add define to test which caused bug #13018
2066511 automoc: fix #13018, proper cmake escaping to avoid false rebuilds
c652812 make cmLocalGenerator::EscapeForCMake() static
2012-03-27 15:56:31 -04:00
David Cole ef309e94cb Merge topic 'ninja-generator'
6b5614f Ninja: Substitute <OBJECT> and <CMAKE_C_COMPILER> in depfile flags
2012-03-27 15:56:13 -04:00
Tom Hughes 3a0c60d3bf Override topdir from rpm command line seems necessary on Amazon linux.
This modification should be harmless on other distro.
Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
2012-03-27 21:43:35 +02:00
Eric NOULARD 8fe0da5981 Fix some doc typo and add an undocumented var. 2012-03-27 07:55:02 +02:00
Alex Neundorf 2066511ca9 automoc: fix #13018, proper cmake escaping to avoid false rebuilds
The variables stored in the AutomocInfo.cmake file were not properly
escaped, so when reading them back they could turn into lists, if they
contained double quotes initially.
This patch fixes this by using cmLocalGenerator::EscapeForCMake() to
escape the variables properly.

Alex
2012-03-26 21:45:27 +02:00
Kashif Rasul 98b9a7f6ff OS X: Use OSX_DEVELOPER_ROOT for app search path (#13066)
Since commit 4693cf84 (Xcode: Detect new default locations of Xcode 4.3
bits and pieces) Darwin.cmake detects the developer application
directory instead of hard-coding /Developer.  Replace the hard-coded
path in CMAKE_SYSTEM_APPBUNDLE_PATH using the computed result.
2012-03-26 09:28:56 -04:00
Peter Collingbourne 6b5614f164 Ninja: Substitute <OBJECT> and <CMAKE_C_COMPILER> in depfile flags
Patch by Amine Khaldi!

Also, start using the -MT flag to set a target name for depfiles.
This works around a bug observed in distcc, as explained in the
comment.  Based on a patch by Alexander Usov.
2012-03-26 04:46:12 +01:00
David Cole a407291c5d Merge topic 'MinorFixForEcos'
1ab4b3e guard eCos.cmake against multiple inclusion (#12987)
2012-03-21 13:28:09 -04:00
David Cole 44495fa78c Merge topic 'UseRealPathWhenFindingEclipse'
00af40b Eclipse: fix #13036, make version detection work with symlinks
2012-03-21 13:27:58 -04:00
David Cole f8a10245e3 Merge topic 'findmpi_look_in_implicit_dirs'
2f9ad7c Fix FindMPI for the intel compiler on linux by looking in implict directories.
2012-03-21 13:27:22 -04:00
David Cole 349ea3f6e6 Merge topic 'ImprovedCOMPONENTSSupportInFindPackage2'
6d100f9 find_package: Test rejection of required+optional components
d81d83c add macro check_required_components() to configure_package_config_file()
b15c0b4 FPHSA(): add HANDLE_COMPONENTS option
34108cd find_package: add documentation for OPTIONAL_COMPONENTS
cdabde8 FPHSA(): add missing "]" to documentation
f2e0a18 find_package: add OPTIONAL_COMPONENTS keyword
2012-03-21 13:26:46 -04:00
Alex Neundorf 1ab4b3e123 guard eCos.cmake against multiple inclusion (#12987)
Alex
2012-03-20 22:13:47 +01:00
Alex Neundorf 00af40b29b Eclipse: fix #13036, make version detection work with symlinks
This patch uses get_filename_component(REALPATH) so symlinks in the path
to Eclipse are resolved, which makes the version detection work in such cases.

Alex
2012-03-20 22:06:38 +01:00
Bill Hoffman 2f9ad7c6e6 Fix FindMPI for the intel compiler on linux by looking in implict directories.
Use the CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES to look for libraries
that are in the -showme output from mpi<lang> programs. This is because
some libraries reported by -showme are found there, and FindMPI will
fail if they are not found.
2012-03-20 15:18:53 -04:00
Brad King bfc8d137c5 Merge topic 'fix-12621-xcode43'
0f4dfa6 CPack: Use real path to PackageMaker to find its version file (#12621)
4693cf8 Xcode: Detect new default locations of Xcode 4.3 bits and pieces (#12621)
2012-03-19 14:41:43 -04:00
Alex Neundorf d81d83c218 add macro check_required_components() to configure_package_config_file()
As discussed on cmake-developers, this patch adds a macro
check_required_components() to the file configured via
configure_package_config_file(), so for proper handling
of components in Config.cmake files users can simply call

check_required_components(PackageName)

and this will do the right thing.

Alex
2012-03-19 10:53:36 -04:00
Alex Neundorf b15c0b418b FPHSA(): add HANDLE_COMPONENTS option
if the HANDLE_COMPONENTS is used, FPHSA() now also checks all required COMPONENTS,
i.e. all elements from <name>_FIND_COMPONENTS for which <name>_FIND_REQUIRED_<comp>
is true, and sets <name>_FOUND only to true if all have been found.
As discussed on cmake-developers.

Alex
2012-03-19 10:53:36 -04:00
Alex Neundorf 34108cd3b3 find_package: add documentation for OPTIONAL_COMPONENTS
This patch adds documentation for OPTIONAL_COMPONENTS to cmFindPackage.cxx,
and also extends Modules/readme.txt significantly with regard to how
components should be handled.

Alex
2012-03-19 10:53:36 -04:00
Alex Neundorf cdabde82c2 FPHSA(): add missing "]" to documentation
Alex
2012-03-19 10:53:36 -04:00
Brad King 572994bd9f Merge topic 'ninja-generator'
8485208 Ninja: shell escape $(CMAKE_SOURCE_DIR) and $(CMAKE_BINARY_DIR)
df84767 Ninja: add support for OBJECT_OUTPUTS, fix PrecompiledHeader test case
48eb7fc Ninja: Avoid using 'this' in member initializers
bba37dd Ninja: Fix for PDB files with spaces in the path.
ac800f4 Ninja: Constify use of cmCustomCommand
9a0d5a8 Ninja: add /DEF: flag to linker call
d40eebd Ninja: Add a cache option CMAKE_ENABLE_NINJA to enable the ninja generator.
8c63433 Ninja: Add friend struct so it can access the private ConvertToNinjaPath.
dbe3dce Ninja: add .def file support
f1bb08f Ninja: ensure the output dir exists at compile time
7a6b5f4 Ninja: Remove an unnecessary variable
80ff210 Ninja: Use cmSystemTools::ExpandListArgument to split compile/link commands
d2731a3 Ninja: Add a missed license header
eabc9b0 Ninja: CMake: Adapt Ninja generator for per-target include dirs
bada88e Merge branch 'target-include-directories' into ninja-generator
54bd175 Ninja: windows msvc: create for each target a .pdb file
...
2012-03-19 09:29:06 -04:00
Brad King 6452aea231 Merge topic 'ExactVersionModeForVersionFile'
e390f87 WriteBasicConfigVersionFile: add test for ExactVersion mode
5d18223 write_basic_package_version_file: add ExactVersion mode
1c69cd8 write_basic_package_version_file(): improve documentation
2012-03-13 11:54:33 -04:00
Brad King ffdb8e2b6a Merge topic 'FindCxxTest-version-4-issue-13022'
a556137 FindCxxTest: Add support for CxxTest 4 (#13022)
2012-03-13 11:52:54 -04:00
Alex Neundorf 5d18223917 write_basic_package_version_file: add ExactVersion mode
This mode is for packages which consider themselves only compatible if
exactly the same version is requested. The tweak version is ignored.

Alex
2012-03-10 16:10:52 +01:00
Alex Neundorf 1c69cd8feb write_basic_package_version_file(): improve documentation
add notes when which mode should be used

Alex
2012-03-10 16:09:17 +01:00
David Cole 4693cf8492 Xcode: Detect new default locations of Xcode 4.3 bits and pieces (#12621)
Xcode 4.3 installs into "/Applications" by default, from the Mac App Store.

Also, the paths to the available SDKs changed: they are now within the
Xcode.app bundle.

PackageMaker is installed as a separate program, and may be installed
anywhere. It is not installed with Xcode 4.3 by default anymore.
Download the "Auxiliary Tools for Xcode" to get PackageMaker.
Put PackageMaker inside the Xcode.app bundle, in its nested Applications
folder, or put it alongside Xcode in "/Applications" and CMake will find
it.

Update references to "find" paths: add new possible locations for finding
Xcode.app and PackageMaker.app. Prefer the most recent version's locations
first, but keep the old locations as fallback search paths, too.

Thanks to all the contributors who provided and tested out various patches
for fixing this issue. Especially, but by no means limited to:
Francisco Requena Espí, Jamie Kirkpatrick and drfrogsplat.
2012-03-08 22:43:19 -05:00
David Cole 36ce6e01f8 Merge topic 'qt4-deploy'
2c601c1 DeployQt4: Add path to Qt dlls on Windows.
2012-03-08 15:14:40 -05:00
David Cole da43d8fa8d Merge topic 'MakingConfigFilesEasier_ConfigureMacro'
6973e2d wrap write_basic_config_version_file as write_basic_package_version_file()
204f5d4 add CMakePackageConfigHelpers: configure_package_config_file()
2012-03-08 15:14:12 -05:00
David Cole 9f6c38253a Merge topic 'CPackNSIS-addMissingDoc'
d4719a8 Add some missing CPACK_NSIS_xxx doc and move some to common CPack section.
2012-03-08 15:13:51 -05:00
Clinton Stimpson 2c601c100b DeployQt4: Add path to Qt dlls on Windows. 2012-03-07 11:43:27 -07:00
Alex Neundorf 6973e2d5a8 wrap write_basic_config_version_file as write_basic_package_version_file()
So the name fits better with configure_package_config_file(), as
discussed on the mailing list. Adapt the documentation accordingly.

Alex
2012-03-07 11:23:18 -05:00
Alex Neundorf 204f5d443c add CMakePackageConfigHelpers: configure_package_config_file()
The function configure_package_config_file() may be used instead of
configure_file() for generating the Config.cmake files for installation,
they help to make those files relocatable.

Alex
2012-03-07 11:23:11 -05:00
Droscy a556137608 FindCxxTest: Add support for CxxTest 4 (#13022)
In CxxTest version 4 the Perl generator has been deleted and the
Python generator is installed without the ".py" extension.
2012-03-07 07:59:45 -05:00
Eric NOULARD d4719a8d36 Add some missing CPACK_NSIS_xxx doc and move some to common CPack section. 2012-03-06 23:23:08 +01:00
David Cole 50f9db9b00 Merge topic 'skip-install-rpath'
635bf50 Add an option to skip RPATH during installation.
2012-03-06 15:27:54 -05:00
David Cole 5aa0f24350 Merge topic 'improve-findqt3'
678c24d FindQt3: fix detection of Qt3 include directory
91a1670 FindQt3: let FPHSA handle the version selection
9dae4d6 FindQt3: fix version extraction for versions with letters
2cd898d FindQt3: fix warning when Qt3 is not found
2012-03-06 15:26:31 -05:00
David Cole b22f2f18c1 Merge topic 'qt4-deploy'
4689eed reflect that the QtAutomoc depends on QtGui
ab9661c Remove QtGui dependency in Qt4Deploy test and verify QtSql existance.
52e8279 Fix for Qt4Deploy on some test machines.
672e3bb Add test for DeployQt4.cmake
4853e1e Fix plugin installation issues.
35cbf23 Ensure libs are passed to BundleUtilities.
0ac1535 Fix bad plugin paths.
a2123e8 Fix mismatched arguments.
fc6f340 Don't use QT_LIBRARIES_PLUGINS by default.
2012-03-06 15:25:02 -05:00
Stephen Kelly 635bf50c27 Add an option to skip RPATH during installation. 2012-03-05 22:24:57 +01:00