Merge branch 'master' into vs12-generator

Resolve conflicts in Tests/Preprocess/CMakeLists.txt by keeping
the side from 'master'.
This commit is contained in:
Brad King 2013-06-28 18:29:54 -04:00
commit 4e5cb398ae
524 changed files with 9990 additions and 2411 deletions

View File

@ -34,7 +34,7 @@ if(CPACK_GENERATOR MATCHES "NSIS")
set(CPACK_NSIS_MODIFY_PATH ON)
endif()
# include the cpack options for qt dialog if they exisit
# include the cpack options for qt dialog if they exist
# they might not if qt was not enabled for the build
include("@QT_DIALOG_CPACK_OPTIONS_FILE@" OPTIONAL)

View File

@ -1,3 +1,672 @@
Changes in CMake 2.8.11.1 (since 2.8.11)
----------------------------------------
Brad King (5):
ExternalData: Do not re-stage staged object files
try_compile: Fix quoting of libraries in generated CMakeLists.txt
KWSys: Fix SystemTools::FileIsDirectory with long paths (#14176)
FindBoost: Fix handling of \ in input paths (#14179)
Xcode: Fix framework search paths in STATIC library targets (#14191)
Modestas Vainius (1):
Fix test failures caused by regexp-sensitive characters in the build paths
Stephen Kelly (9):
include_directories: Fix handling of empty or space-only entries
try_compile: Trim whitespace from LINK_LIBRARIES entries
cmTarget: Remove some hardcoding of transitive property names.
GenexEval: Extract a getLinkedTargetsContent from TargetPropertyNode.
GenexEval: Fix evaluation of INCLUDE_DIRECTORIES target property.
GenexEval: Test evaluation of INCLUDE_DIRECTORIES target property.
FindQt4: Don't fail if certain Qt modules are unavailable.
Qt4Macros: Handle Qt ActiveX libraries in qt4_use_modules.
Genex: Fix the HEAD target used for evaluated expressions
Changes in CMake 2.8.11 (since 2.8.11-rc4)
----------------------------------------
None
Changes in CMake 2.8.11-rc4 (since 2.8.11-rc3)
----------------------------------------------
Brad King (1):
target_link_libraries: Update usage requirements documentation
Stephen Kelly (3):
Centralize maintenance of usage requirement include directories
Fix include dir propagation from conditionally linked targets
Memoize usage requirement include directories in a config-specific map
Changes in CMake 2.8.11-rc3 (since 2.8.11-rc2)
----------------------------------------------
Brad King (1):
get_filename_component: Document path components more clearly (#14091)
Rolf Eike Beer (1):
try_compile: add missing fclose() to recently added error case
Stephen Kelly (1):
Fix clearing of the INCLUDE_DIRECTORIES DIRECTORY property.
Changes in CMake 2.8.11-rc2 (since 2.8.11-rc1)
----------------------------------------------
Alex Neundorf (6):
Determine C/CXX/Fortran compiler: minor restructuring
Determine C/CXX/Fortran compiler: fix indentation
rename TI_DSP toolchain to TI, since it works also for the ARM compiler
TI compiler: add automatic detection of prefix and suffixes
Modules/readme.txt: switch from "XXX" to "Xxx"
Modules/readme.txt: make lines a bit shorter for easier readability
Ben Boeckel (1):
Clang: Add -isystem flag support everywhere
Bill Hoffman (1):
ExternalProject: Retry on a failed git clone
Brad King (8):
string: Fix regex documentation of '^' and '$' (#14028)
Rename variable for including current directory in interfaces
Replace <TARGET> in CMAKE_<LANG>_COMPILE_OBJECT rule variables
Test evaluation of per-config COMPILE_DEFINITIONS (#14037)
VS: Fix VS 10/11 .sln headers (#14038)
add_dependencies: Distinguish target v. file dependencies in error (#14050)
automoc: Use a pre-build event in VS >= 7
Handle usr-move without forcing absolute paths (#14041)
Clinton Stimpson (2):
FindQt4: If Qt5 is in CMAKE_PREFIX_PATH, be sure to find Qt4 includes.
Qt4: Fix typo setting a variable for FindThreads.
James Bigler (1):
FindCUDA: Use the PRE_LINK mode only for MSVC >= 10
Matthew Woehlke (4):
UseJava.cmake: simplify path logic
UseJava.cmake: fix passing jars to add_jar
UseJava.cmake: accept jar targets in add_jar
UseJava.cmake: require explicit request to include jars
Paul Kunysch (1):
CPack: Avoid "format expects 'unsigned int'" warnings
Petr Kmoch (1):
cmSystemTools: Generalize TrimWhitespace to all whitespace
Rex Dieter (1):
FindImageMagick: Search versioned suffixes (#14012)
Rolf Eike Beer (1):
FindRuby: improve version selection
Stephen Kelly (13):
FindQt4: Set the Qt4_FOUND variable if Qt4 is found
FindQt4: Set the INTERFACE_QT_MAJOR_VERSION for Qt4::QtCore
Document that CMAKE_AUTOMOC works with Qt 5.
FPHSA: Fix FOUND_VAR check to work with if() auto-dereference
Fix cmGeneratorExpression::Preprocess for interleaved inputs.
cmake-gui: Use the QStandardItemModel workaround until 5.1.0.
Automoc: append implicit includes after user-specified dirs
Fix the evaluation of per-config COMPILE_DEFINITIONS (#14037)
Fix new target commands documentation.
install(EXPORT): Ensure clean INTERFACE_INCLUDE_DIRECTORIES
Report an error on IMPORTED targets with a faulty INTERFACE
Error if linked target has relative paths in INTERFACE_INCLUDE_DIRECTORIES
Fix the Qt 5 version required to run the IncompatibleQt test.
Changes in CMake 2.8.11-rc1 (since 2.8.10.2)
----------------------------------------------
Alan Witkowski (1):
FindBullet: Search in per-config dirs on Windows (#13738)
Aleksey Avdeev (1):
Add module FindIcotool
Alex Neundorf (30):
Eclipse: add switch to disable linked resources (#13189)
Eclipse: set source path once to fix Eclipse indexer (#13596)
cmDependsC: remove unused member variable
cmDependsC: remove code duplication
cmDependsC: fix indentation
cmDepends: allow multiple dependees per depender
AddCustomCommand: Handle multiple IMPLICIT_DEPENDS files (#10048)
Add support for Texas Instruments DSP compiler (#12405)
Squish: detect version
Squish: use FPHSA
Squish: find executables also under Windows
Squish: rename squish_add_test() to squish_v3_add_test() and fix docs a bit
Squish: use ${CMAKE_CURRENT_LIST_DIR}
Squish: add support for squish 4 (#9734)
Squish: fix new squish_v4_add_test() macro
Automoc: "inherit" FOLDER target property from target (#13688)
FPHSA: don't succeed if only checking for XX_FOUND (#13755)
CONFIGURE_PACKAGE_CONFIG_FILE(): improve generated comments
Automoc: get include dirs without stripping implicit include dirs off
configure_package_config_file: force absolute paths for usr-move
configure_package_config_file(): fix indentation
configure_package_config_file(): extend documentation
documentation: handling of relative paths by include- and link_directories()
automoc: use a std::vector<> instead a std::list
automoc: use the header extensions from cmMakefile
Eclipse: also detect include dirs and macro for clang (#13823)
cmLocalGenerator: remove "virtual" where not used
export files: rewrite the code for checking required targets
FPHSA: Add FOUND_VAR option to specify _FOUND variable name
FPHSA: improve documentation
Alexander Chehovsky (2):
Xcode: Fix nested source group handling (#12943)
Xcode: Sort source files
Amine Chadly (2):
file: remove dead code
Add test to secure the file(GLOB empty) behavior.
Amit Kulkarni (6):
OpenBSD: Install shared libraries without executable permission
OpenBSD: Add paths for Java 1.6.0/1.7.0 JRE/JDK
OpenBSD: Add path for Freetype under X.org
OpenBSD: Add paths for Tcl/Tk 8.4/8.5
OpenBSD: Add path for Lua 5.1
OpenBSD: Add paths for Qt3/Qt4
Andreas Mohr (4):
Documentation: Correct typos and grammar
Documentation: Clarify some command descriptions
Correct string literal typo (have "(NULL)" like all other cases).
Remove seemingly bogus duplicate CPACK_PACKAGE_FILE_NAME call.
Anton Helwart (1):
VS: Avoid empty source groups in some cases (#3474)
Benjamin Eikel (2):
Swap linking order of SDLmain and SDL (#0013769)
FindSDL_...: Restore dropped search paths (#13819)
Brad King (109):
find_library: Refactor internal name iteration
find_library: Simplify framework search logic
find_library: Generalize helper macro in test case
find_library: Optionally consider all names in each directory
FindBoost: Remove extra indentation level
FindBoost: Mark Boost_DIR cache entry as advanced
FindBoost: Use PATH_SUFFIXES to look in "Program Files"
FindBoost: Overhaul caching and search repeat behavior
FindBoost: Construct a clean Boost_LIBRARIES value
FindBoost: Refactor Boost_FOUND computation and version check
FindBoost: Rewrite documentation
BSD: Do not require dlfcn.h to build shared libs (#13573)
Xcode: Fix ReRunCMake.make path to cmake.check_cache (#13603)
VS10: Refactor link options collection
VS10: Honor /DELAYSIGN and /KEYFILE flags (#13601)
Document external language support policy
CTest: Allow SUBMIT_INDEX with CDash
KWSys: Submit dashboard builds to PublicDashboard
pre-commit: Update KWSys rejection message for new workflow
CTestCustom: Suppress LNK4089 warning about PSAPI
load_command: Deprecate and document pending removal
Documentation: Clarify configure_file behavior
OS X: Warn about known SDK breakage by Xcode 3.2.6
Optionally skip link dependencies on shared library files
Teach BuildDepends test to cover LINK_DEPENDS_NO_SHARED
Serialize tests for EXCLUDE_FROM_DEFAULT_BUILD
MSVC: Drop default use of /Zm1000 for VS >= 7.1
Teach find_(path|file) about Linux multiarch (#13742)
Test find_path multiarch support (#13742)
Add policy CMP0019 to skip include/link variable re-expansion
Xcode: Add frameworks search paths from link dependeny closure (#13397)
Makefile: Use modern link information for framework search paths
Documentation: Clarify handling of implicit link directories
Remove references to KWSys Process Win9x support
add_library: Document object library portability suggestion
OS X: Link with all framework search paths, not just the last
OS X: Detect implicit link directories on modern toolchains
OS X: Detect implicit linker framework search paths
Revert "load_command: Deprecate and document pending removal"
VS11: Simplify external object file handling (#13831)
KWIML: Teach ABI about 'long long' on older GNU
CMake: Skip empty link.txt lines (#13845)
ExternalProject: Allow DEPENDS on normal targets (#13849)
VS11: Fix VSExternalInclude test
target_link_libraries: Document that new sigs privatize old (#13876)
Tests: Avoid CTestLimitDashJ crash on Borland 5.8 builds
Fix use of cmTypeMacro in new command classes
Fix cmSystemTools::RenameFile race on Windows
VS 6: Create .rule file directory before file
Add ExternalData module
ExternalData: Remove compatibility with CMake < 2.8.5
ExternalData: Do not match directory names when resolving DATA{}
ExternalData: Cleanup stray TODO and typo in comments
ExternalData: Remove unused private interface
ExternalData: Improve series matching using an explicit syntax
ExternalData: Add tests covering interfaces and errors
ExternalData: Allow ()-groups in series match regex
ExternalData: Allow DATA{} syntax to reference directories
ExternalData: Generalize hash algo/ext handling
ExternalData: Add support for SHA 1 and 2 hash algorithms
ExternalData: Collapse ../ components in DATA{} paths
Fix Module.ExternalData test on Cygwin
Fix Module.ExternalData test on VS 6
ExternalData: Attach download rules to content links in IDEs
find_package: Reword <package>_NO_INTERFACES documentation
Normalize full paths in implicit link library list
Fail early if no current working directory exists
MSVC: Fix CMAKE_CL_64 in CXX-only projects (#13896)
ExternalProject: Simplify CMake command line generation
Tests: Run ctest custom commands with VERBATIM
CMake: Add -T option to choose a generator toolset
VS: Implement generator toolset selection (#10722, #13774)
Xcode: Implement generator toolset selection (#9831, #13802)
CTest: Add options to set generator toolset
ExternalProject: Propagate the generator toolset
Tests: Consolidate ctest --build-and-test generator options
Tests: Add generator toolset support
Fix crash on empty CMAKE_<lang>_COMPILER value (#13901)
file: Do not remove symlinked directories recursively (#10538)
Embarcadero: Fix default link stack/heap flags (#13912)
Avoid duplicate RPATH entries
AIX-GNU: Put implicit link directories in runtime libpath (#13909)
VS: Replace generation timestamp file atomically
VS,Xcode: Remove unused CMAKE_GENERATOR_* variables
Delete entire CMakeFiles directory when deleting CMakeCache.txt (#13756)
Tests/RunCMake: Allow tests to control build tree behavior
Test Unix Makefiles generator support for changing compilers
Xcode: Drop check for circular target dependencies
Xcode: Each target dependency edge needs a unique object (#13935)
Tests: Replace exec_program with execute_process
Tests: Generalize decision for 'make' tool supporting spaces
ExternalData: Test content link with a space in its name
FPHSA: Convert FOUND_VAR failure test to RunCMake
VS: Restore CMAKE_GENERATOR_FC variable
Xcode: Generate recommended artwork setting (#13954)
CTest: Fix ctest_update with 'HEAD' file in source tree
VS 10: Fix CMAKE_<LANG>_STACK_SIZE implementation (#13968)
install(EXPORT): Force absolute paths for usr-move
AIX: Do not use -brtl to create shared libraries (#13997)
add_subdirectory: Compute output dir with consistent slashes (#10072)
ExternalData: Preserve escaped semicolons during argument expansion
Avoid crash when checking property link dependencies without link info
Avoid crash when checking property compatibility without link info
Refactor RunCMake.build_command test to allow more cases
build_command: Fail early without CMAKE_MAKE_PROGRAM (#14005)
CTest: Fail early without PROJECT_BINARY_DIR (#14005)
FindQt4: Fix QT_QMAKE{_QMAKE => }_EXECUTABLE typo
XL: Use -qpic for position independent code (#14010)
Configure Tests/CMakeTests only with BUILD_TESTING ON
Casey Goodlett (1):
CTest: Prevent creation of unbounded number of tests in ctest (#12904)
Clemens Heppner (1):
CMake: source_group needs to check its own regex after its children (#13611)
Clinton Stimpson (5):
Fix for possible Rez errors when creating dmg.
PackageMaker: Enable postflight script in component mode (#12375)
CPack: Fix RPM/Deb package names to not include "ALL_COMPONENTS_IN_ONE"
Qt4: Add SYSTEM option to include_directories.
FindQt4: set QT_VERSION_* variables sooner.
David Cole (19):
Begin post-2.8.10 development
CPack: Add automatic detection of the Unicode makensis (#9629)
BundleUtilities: Use a more inclusive REGEX for frameworks (#13600)
VS: Avoid empty, unreferenced solution folders... (#13571)
NMake: Add a test to demonstrate EmptyDepends issue (#13392)
NMake: Fix problem with empty DEPENDS args (#13392)
CMake: Remove "/STACK:10000000" from default linker flags (#12437)
Watcom: Avoid prompt from wmake about dll with no exports...
Tests: Use the right path to CPack value for running CPack tests
VS11: Allow using folders with the VS11 Express Edition (#13770)
CPack: Fix dashboard errors (#11575)
CPack: Fix dashboard warnings (#11575)
CPack: Fix dashboard errors and warnings (#11575)
CMake: Stylistic changes and documentation tweaks
CMake: Fix dashboard warnings
CMake: Fix dashboard test failure
CMake: Fix dashboard build errors and warnings
CTest: Coverage handler: expect certain output lines from gcov 4.7 (#13657)
Add CTestLimitDashJ test (#12904)
David Golub (2):
CPack/NSIS: Fix compatibility issues with prerelease NSIS (#13202)
CPack/NSIS: Add support for 64-bit NSIS (#13203)
Eric LaFranchi (1):
CPack: WIX Product Icon, UI Banner, UI Dialog support (#13789)
Eric NOULARD (1):
CPackRPM fix #13898 uses IF(DEFINED var) to avoid wrong var value logic
Gerald Hofmann (1):
CPack: Fix NSIS version check without release version (#9721)
James Bigler (4):
Use PRE_LINK instead of PRE_BUILD when testing PRE_LINK.
FindCUDA: Remove linkage against CUDA driver library (#13084)
FindCUDA: Add support for separable compilation
FindCUDA: Added cupti library.
Janne Rönkkö (1):
FindQt4: Do not use qmake from Qt5
Jean-Christophe Fillion-Robin (1):
Add $<SEMICOLON> generator expression.
Marcus D. Hanwell (1):
Removed GenerateExportHeader warnings about old compilers
Mark Salisbury (2):
VS: Specify WinCE subsystem also for DLLs
VS: Specify WinCE subsystems correctly in VS 9 2008
Mathias Gaunard (2):
enable CTEST_USE_LAUNCHERS with Ninja too
Ninja: fix usage of cldeps with ctest launchers
Matt McCormick (7):
ExternalProject: Only run 'git fetch' when required.
ExternalProject: Do smoke tests for Git Tutorial builds.
ExternalProject: Add tests for UPDATE_COMMAND.
ExternalProject: Always do a git fetch for a remote ref.
ExternalProject: Make sure the ExternalProjectUpdate setup is available.
ExternalProject: Verify when a fetch occurs during update test.
ExternalProjectUpdateTest: Only support Git 1.6.5 and greater.
Matthew Woehlke (1):
ccmake: Allow DEL key in first column
Michael Tänzer (4):
GetPrerequisites: Move tool search paths up
GetPrerequisites: Add support for objdump
GetPrerequisites: Enable test for BundleUtilities on MinGW
GetPrerequisites: Add documentation for objdump
Michael Wild (1):
cmDepends: No dependency-vector erasure in CheckDependencies
Morné Chamberlain (15):
Added a generator for Sublime Text 2 project files.
Added some support for sublimeclang_options in the generated project file.
Changed SublimeClang include path generation to expand to absolute paths.
Cleaned up the Sublime Text 2 Generator code a bit.
Fixed support for the Ninja build system.
Added and cleaned up some comments.
The generator no longer generates an explicit list of source files.
The generator no longer generates absolute paths to the ninja.build/Makefiles.
Added a CMAKE_SUBLIMECLANG_DISABLED variable that disables SublimeClang.
Fixed Sublime Text project generation for in-source builds
Define flags in CMAKE_C(XX)_FLAGS are now included in SublimeClang settings.
SublimeText2 Gen: Improved use of define, include flags from CMAKE_C(XX)_FLAGS
SublimeText2 Gen: Fixed the issue where include directory flags used -D
Sublime Text 2 Gen: Per-source Compile flags are now saved in a separate file.
SublimeText 2 Gen: Set the sublimeclang_options_script property.
Neil Carlson (1):
NAG: Use -PIC for Fortran position-independent code (#13932)
Nils Gladitz (2):
CPack: Add a WiX Generator (#11575)
CMake: Add TIMESTAMP subcommand to string and file commands
Patrick Gansterer (28):
Introduce the abstract class cmGlobalGeneratorFactory
Add cmGlobalGeneratorFactory::GetGenerators()
Search generator in cmake::ExtraGenerators before in cmake::Generators
Allow a GeneratorFactory handling of more than one generator
Make cmGlobalGenerator::GetDocumentation() a static function
VS: Remove AddPlatformDefinitions from platform-specific generators
VS: Fix ArchitectureId of Visual Studio 10 IA64 generator
VS: Remove GetPlatformName from platform-specific generators
VS: Remove EnableLanguage from platform-specific generators
VS: Remove platform specific generator files
FindBISON: Add support for the Win flex-bison distribution
FindFLEX: Add support for the Win flex-bison distribution
VS: Remove TargetMachine for linker when checking compiler id
VS: Add CMAKE_VS_PLATFORM_NAME definition to cmMakefile
VS: Add static method to get the base of the registry
VS: Change variable type of ArchitectureId from const char* to string
VS: Change variable type of Name from const char* to string
VS: Support setting correct subsystem and entry point for WinCE
VS: Add parser for WCE.VCPlatform.config to read WinCE platforms
VS: Allow setting the name of the target platform
VS: Make DetermineCompilerId working with WinCE too
VS: Added "Deploy" at project configuration for WindowsCE targets
Add command to generate environment for a Windows CE SDK
VS: Set the correct SubSystem when determinating the CompilerId
VS: Add the entry point when compiling for WindowsCE
VS: Ignore LIBC.lib when linking the CompilerId executables
Set WINCE to 1 when building for WindowsCE
Ninja: Avoid LNK1170 linker error
Peter Kümmel (6):
Ninja: encode LINK_FLAGS to handle bash variables
Ninja: fix building from Codeblocks GUI
Ninja: remove implicit dependency on custom command outputs
Ninja: use MinGW generator code in EnableLanguage()
Ninja: the Ninja generator does not support Fortran yet.
Ninja: escape line breaks in literals
Petr Kmoch (11):
Add tests for list() argument count
Add tests for list() invalid arguments
Consolidate list() argument count testing
Add several get_property() tests
Add tests for EXCLUDE_FROM_DEFAULT_BUILD
Add property EXCLUDE_FROM_DEFAULT_BUILD_<CONFIG>
Define property EXCLUDE_FROM_DEFAULT_BUILD
Add tests for VS_SOLUTION_GLOBAL_SECTIONS
Implement properties VS_GLOBAL_SECTION_*
Define properties VS_GLOBAL_SECTION_*
Documentation: Clarify a few subtleties
Riku Voipio (1):
KWIML: Teach ABI.h about Aarch64
Robert Maynard (4):
XCode generator won't infinitely parse compiler flags (bug #13354).
Correct missing parameter to CMP0018Flags call.
Remove ability to generate sublime clang files.
Update generator to use new cmGeneratorTarget api.
Rodolfo Schulz de Lima (1):
FindGTK2: Fix GTK2_LIBRARIES order for static gtk libraries
Rolf Eike Beer (21):
FindQt: improve version selection
FindQt: add some more places to look for Qt3
Tests: add MajorVersionSelection tests
Linux/PA-RISC: Link with --unique=.text.* to help binutils
FindQt: add to MajorVersionSelection test
CMakeTests: allow to call the check_cmake_test macro with a given file
list: add tests for CMP0007 behavior
GetProperty test: move doc property tests into main process
Find* (and some other): use ${CMAKE_CURRENT_LIST_DIR} in include()
bootstrap: use better defaults for Haiku
Haiku no longer defines __BEOS__
check for Haiku only with __HAIKU__
FindLua51: do not try to link libm on BeOS
FindGLUT: BeOS does not have libXi and libXmu
FindOpenGL: add Haiku paths
doc: fix linebreaks in generator expression documentation
ProcessorCount test: fix path to cmsysTestsCxx executable
ProcessorCount test: require SystemInformation process to work
FindOpenMP: improve documentation (#13895)
properly detect processor architecture on Windows
fix Windows processor detection
Sean McBride (1):
libarchive: fixed undefined left shift with signed ints
Slava Sysoltsev (1):
FindImageMagick: Search quantum depth suffixes (#13859)
Stephen Kelly (158):
GenEx: Test early determination of AND and OR
Enable some compiler warnings when building CMake.
Resolve warnings about unused variables.
Resolve warnings about used enum values in switch blocks.
Resolve warnings about shadowing parameters and local variables.
Resolve ambiguity warning regarding use of && and ||.
Remove references to ancient and removed parts of the code.
Always use the auto_ptr from cmsys.
Port cmGeneratorExpression to cmTarget from cmGeneratorTarget.
Split link information processing into two steps.
Revert "Move GetLinkInformation to cmGeneratorTarget"
Genex: Extract a method to parse parameters.
Genex: Ensure that $<0:...> has a parameter.
Genex: Don't segfault on $<FOO,>
Generate an early-return guard in target Export files.
Fix some warnings from -Wundef
Make targets depend on the link interface of their dependees.
Use cmsys::auto_ptr to manage cmCompiledGeneratorExpressions
Keep track of INCLUDE_DIRECTORIES as a vector of structs.
Add a way to print the origins of used include directories.
Tests: Fix warning about unused variable
Qt4: Add module dependencies to the IMPORTED targets
Don't crash when a target is expected but is not available.
Add test for custom command with a genex referring to a target.
GenEx: Add expressions to specify build- or install-only values
Allow generator expressions to require literals.
Add the TARGET_NAME generator expression.
Add API to extract target names from a genex string.
Add API to populate INTERFACE properties in exported targets.
Make all relevant targets available in the genex context.
Use mapped config properties to evaluate $<CONFIG>
Make cycles in target properties ignored, not an error.
Populate the ExportedTargets member early in GenerateMainFile
Handle INTERFACE properties transitively for includes and defines.
Add CMAKE_BUILD_INTERFACE_INCLUDES build-variable.
Make linking APIs aware of 'head' target
Add LINK_LIBRARIES property for direct target link dependencies
Allow target_link_libraries with IMPORTED targets.
Add the -Wundef flag when compiling CMake.
FindQt4: Add INTERFACE includes and defines to Qt4 targets
Add the target_include_directories command.
Add the target_compile_definitions command.
Keep track of properties used to determine linker libraries.
Add API to calculate link-interface-dependent bool properties or error.
Process the INTERFACE_PIC property from linked dependencies
Fix linking to imported libraries test.
Add cmGeneratorExpression::Split() API.
Don't pass a position when determining if a target name is a literal.
Extract the AddTargetNamespace method.
Split the generator expression before extracting targets.
Split LINK_INTERFACE_LIBRARIES export handling into dedicated method.
Allow generator expressions in LINK_INTERFACE_LIBRARIES.
Add a way to check INTERFACE user property compatibility.
Don't include generator expressions in old-style link handling.
Document the use of generator expressions in new commands.
Add the TARGET_DEFINED generator expression
Strip consecutive semicolons when preprocessing genex strings.
Don't write a comment in the export file without the code.
Only generate one check per missing target.
Move the exported check for dependencies of targets
Move the exported check for file existence.
Add a test for the interfaces in targets exported from the build tree.
Make the BUILD_INTERFACE of export()ed targets work.
Export the INTERFACE_PIC property.
Test evaluation target via export for generator expressions
Make sure generator expressions can be used with target_include_directories.
Populate the link information cache before checking dependent properties.
Exit early if we find an inconsistent property.
Make INTERFACE determined properties readable in generator expressions.
Clear the link information in ClearLinkMaps.
Export the COMPATIBLE_INTERFACE_BOOL content properties
Add the $<TARGET_POLICY> expression
Automatically link to the qtmain library when linking to QtCore.
Don't wrap all targets in LINK_LIBRARIES in a TARGET_NAME genex.
Generate new-style cmake code during export.
Store includes from the same include_directories call together.
Only output includes once after the start of 'generate-time' when debugging.
Specify the target whose includes are being listed.
Output include directories as LOG messages, not warnings.
Revert "Allow target_link_libraries with IMPORTED targets."
Disallow porcelain to populate includes and defines of IMPORTED targets.
Exclude the LINK_LIBRARIES related properties from INTERFACE evaluation.
Make calculation of link-interface-dependent properties type-sensitive.
Add the COMPATIBLE_INTERFACE_STRING property.
Move GetCompileDefinitions to cmTarget.
Process COMPILE_DEFINITIONS as generator expressions in QtAutomoc.
Generate the _IMPORT_PREFIX in the non-config export file.
Add the INSTALL_PREFIX genex.
Fix TARGET_PROPERTY target extractions.
Make the Property name protected so that subclasses can use it.
Don't allow targets args in the new target commands.
Make subclasses responsible for joining content.
Use the result of converting to a unix path.
Handle reading empty properties defined by the link interface.
Advance more when preprocessing exported strings.
Make it an error for INSTALL_PREFIX to be evaluated.
Export targets to a targets file, not a Config file.
Add a way to exclude INTERFACE properties from exported targets.
Add API to check if we're reading a includes or defines property.
Add the $<LINKED:...> generator expression.
Add includes and compile definitions with target_link_libraries.
Test workaround of bad interface include directories from depends.
Optimize genex evaluation for includes and defines.
Cache context-independent includes on evaluation.
Style: Use this-> when invoking member functions.
Process generator expressions for 'system' include directories.
Deduplicate the isGeneratorExpression method.
De-duplicate validation of genex target names.
Test printing origin of include dirs from tll().
The COMPATIBLE_INTERFACE does not affect the target it is set on.
Ensure type specific compatible interface properties do not intersect.
Fix generation of COMPILE_DEFINITIONS in DependInfo.cmake.
Fix determination of evaluating link libraries.
Only use early evaluation termination for transitive properties.
Move a special case for PIC from the genex to the cmTarget code.
Don't keep track of content determined by target property values.
Only append build interface include dirs to particular targets.
Ensure that the build interface includes have been added.
Whitelist target types in target_{include_directories,compile_definitions}
Make sure INTERFACE properties work with OBJECT libraries.
Don't allow utility or global targets in the LINKED expression.
Generate config-specific interface link libraries propeties.
Fix determination of when we're evaluating compile definitions.
Rename the IncludeDirectoriesEntry to be more generic.
Don't use LINKED where not needed.
Use the link information as a source of compile definitions and includes.
Revert "Don't allow utility or global targets in the LINKED expression."
Don't populate INTERFACE includes and defines properties in tll.
Revert "Add the $<LINKED:...> generator expression."
Revert "find_package: Reword <package>_NO_INTERFACES documentation"
Revert "Add a way to exclude INTERFACE properties from exported targets."
Don't add target-specific interface includes and defines to Qt 4 targets.
Fix GenerateExportHeader documentation #13936
automoc: Add source file to target early to set the linker language
Keep track of all targets seen while evaluating a genex.
Add a new Export generator for IMPORTED targets.
Handle targets in the LINK_LIBRARIES of try_compile.
Strip stray semicolons when evaluating generator expressions.
Workaround broken code where a target has itself in its link iface.
Fix DAG checker finding cycling dependencies.
Expand includes and defines transitively in 'external' genexes.
Fix constness of accessors.
Fix the tests for evaluating includes and defines.
Memoize includes and defines from interface libraries.
Remove use of TARGET_DEFINED from target_include_directories test.
Remove use of TARGET_DEFINED from the ExportImport test.
Remove use of TARGET_DEFINED from the target_link_libraries test.
Revert "Add the TARGET_DEFINED generator expression"
Only add existing targets to the Qt4 target depends properties.
Fix the cmGeneratorExpression::Split when leading chars are present.
Fix RPATH information when only a genex is used as a link library.
Mention that IMPORTED targets may be created by a find_package call.
Remove unused parameters from target_link_libraries tests.
Only process transitive interface properties for valid target names.
Restore support for target names with '+' (#13986)
Automoc: Don't create automoc targets if Qt is not used (#13999)
cmake-gui: Use -fPIE if required by Qt.
cmake-gui: Workaround bug in Qt 5.0.0 to 5.0.3 QStandardItemModel
Thomas Klausner (1):
KWIML: Teach ABI.h that VAX is big endian
Yury G. Kudryashov (3):
Automoc: Fix automoc for OBJECT libraries.
Automoc: add OBJECT library to QtAutomoc test
spell: fix a few typos in comments
Changes in CMake 2.8.10.2 (since 2.8.10.1)
----------------------------------------------
Alex Neundorf (1):

View File

@ -6,10 +6,9 @@ set(AM_MOC_OPTIONS @_moc_options@)
set(AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE "@CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE@")
set(AM_CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@/")
set(AM_CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@/")
set(AM_QT_MOC_EXECUTABLE "@QT_MOC_EXECUTABLE@")
set(AM_QT_MOC_EXECUTABLE "@_qt_moc_executable@")
set(AM_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@/")
set(AM_CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@/")
set(AM_QT_VERSION_MAJOR "@QT_VERSION_MAJOR@" )
set(AM_Qt5Core_VERSION_MAJOR "@Qt5Core_VERSION_MAJOR@" )
set(AM_QT_VERSION_MAJOR "@_target_qt_version@")
set(AM_TARGET_NAME @_moc_target_name@)
set(AM_RELAXED_MODE "@_moc_relaxed_mode@")

View File

@ -55,7 +55,7 @@ if(NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
TEST_BIG_ENDIAN(CMAKE_WORDS_BIGENDIAN)
include (FindX11)
if("${X11_X11_INCLUDE_PATH}" MATCHES "^/usr/include$")
if("${X11_X11_INCLUDE_PATH}" STREQUAL "/usr/include")
set (CMAKE_X_CFLAGS "" CACHE STRING "X11 extra flags.")
else()
set (CMAKE_X_CFLAGS "-I${X11_X11_INCLUDE_PATH}" CACHE STRING

View File

@ -160,10 +160,9 @@
# define COMPILER_ID "ADSP"
/* IAR Systems compiler for embedded systems.
http://www.iar.com
Not supported yet by CMake
#elif defined(__IAR_SYSTEMS_ICC__)
# define COMPILER_ID "IAR" */
http://www.iar.com */
#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
/* sdcc, the small devices C compiler for embedded systems,
http://sdcc.sourceforge.net */

View File

@ -161,6 +161,11 @@
#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
/* IAR Systems compiler for embedded systems.
http://www.iar.com */
#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
# define COMPILER_ID "MIPSpro"
# if defined(_SGI_COMPILER_VERSION)

View File

@ -15,6 +15,6 @@
# determine the compiler to use for ASM using AT&T syntax, e.g. GNU as
set(ASM_DIALECT "-ATT")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ${_CMAKE_TOOLCHAIN_PREFIX}gas ${_CMAKE_TOOLCHAIN_PREFIX}as)
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}gas ${_CMAKE_TOOLCHAIN_PREFIX}as)
include(CMakeDetermineASMCompiler)
set(ASM_DIALECT)

View File

@ -39,8 +39,8 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER)
endif()
endif()
else() # some specific assembler "dialect"
if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT)
message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT must be preset !")
if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT AND NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST)
message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT or CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST must be preset !")
endif()
endif()
@ -103,6 +103,10 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_TI "-h")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_TI "Texas Instruments")
list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS GNU IAR)
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_IAR )
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_IAR "IAR Assembler")
include(CMakeDetermineCompilerId)
CMAKE_DETERMINE_COMPILER_ID_VENDOR(ASM${ASM_DIALECT})

View File

@ -14,7 +14,7 @@
# Find the nasm assembler. yasm (http://www.tortall.net/projects/yasm/) is nasm compatible
set(CMAKE_ASM_NASM_COMPILER_INIT nasm yasm)
set(CMAKE_ASM_NASM_COMPILER_LIST nasm yasm)
if(NOT CMAKE_ASM_NASM_COMPILER)
find_program(CMAKE_ASM_NASM_COMPILER nasm

View File

@ -120,6 +120,13 @@ if(NOT CMAKE_C_COMPILER_ID_RUN)
set(CMAKE_C_COMPILER_ID)
file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
CMAKE_C_COMPILER_ID_PLATFORM_CONTENT)
# The IAR compiler produces weird output.
# See http://www.cmake.org/Bug/view.php?id=10176#c19598
list(APPEND CMAKE_C_COMPILER_ID_VENDORS IAR)
set(CMAKE_C_COMPILER_ID_VENDOR_FLAGS_IAR )
set(CMAKE_C_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
CMAKE_DETERMINE_COMPILER_ID(C CFLAGS CMakeCCompilerId.c)

View File

@ -116,6 +116,13 @@ if(NOT CMAKE_CXX_COMPILER_ID_RUN)
set(CMAKE_CXX_COMPILER_ID)
file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
CMAKE_CXX_COMPILER_ID_PLATFORM_CONTENT)
# The IAR compiler produces weird output.
# See http://www.cmake.org/Bug/view.php?id=10176#c19598
list(APPEND CMAKE_CXX_COMPILER_ID_VENDORS IAR)
set(CMAKE_CXX_COMPILER_ID_VENDOR_FLAGS_IAR )
set(CMAKE_CXX_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
CMAKE_DETERMINE_COMPILER_ID(CXX CXXFLAGS CMakeCXXCompilerId.cpp)

View File

@ -28,6 +28,9 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
if(DEFINED CMAKE_${lang}_VERBOSE_FLAG)
set(CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${CMAKE_${lang}_VERBOSE_FLAG}")
endif()
if(CMAKE_${lang}_COMPILER_TARGET)
set(CMAKE_FLAGS "${CMAKE_FLAGS} -DCMAKE_${lang}_COMPILER_TARGET=${CMAKE_${lang}_COMPILER_TARGET}")
endif()
try_compile(CMAKE_${lang}_ABI_COMPILED
${CMAKE_BINARY_DIR} ${src}
CMAKE_FLAGS "${CMAKE_FLAGS}"

View File

@ -131,6 +131,8 @@ Id flags: ${testflags}
elseif("${id_arch}" STREQUAL "Itanium")
set(id_machine_10 MachineIA64)
set(id_arch ia64)
elseif("${id_arch}" STREQUAL "ARM")
set(id_machine_10 MachineARM)
else()
set(id_machine_6 x86)
set(id_machine_10 MachineX86)

View File

@ -12,14 +12,14 @@
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# determine the compiler to use for C programs
# NOTE, a generator may set CMAKE_C_COMPILER before
# determine the compiler to use for RC programs
# NOTE, a generator may set CMAKE_RC_COMPILER before
# loading this file to force a compiler.
# use environment variable CCC first if defined by user, next use
# the cmake variable CMAKE_GENERATOR_CC which can be defined by a generator
# use environment variable RC first if defined by user, next use
# the cmake variable CMAKE_GENERATOR_RC which can be defined by a generator
# as a default compiler
if(NOT CMAKE_RC_COMPILER)
# prefer the environment variable CC
# prefer the environment variable RC
if($ENV{RC} MATCHES ".+")
get_filename_component(CMAKE_RC_COMPILER_INIT $ENV{RC} PROGRAM PROGRAM_ARGS CMAKE_RC_FLAGS_ENV_INIT)
if(CMAKE_RC_FLAGS_ENV_INIT)

View File

@ -1,32 +1,25 @@
# - Includes a public function for assisting users in trying to determine the
# Visual Studio service pack in use.
#
# Sets the passed in variable to one of the following values or an empty
# string if unknown.
# vc80
# vc80sp1
# vc90
# vc90sp1
# vc100
# vc100sp1
# vc110
# - Determine the Visual Studio service pack of the 'cl' in use.
# The functionality of this module has been superseded by the platform
# variable CMAKE_<LANG>_COMPILER_VERSION that contains the compiler version
# number.
#
# Usage:
# ===========================
#
# if(MSVC)
# include(CMakeDetermineVSServicePack)
# DetermineVSServicePack( my_service_pack )
#
# if( my_service_pack )
# message(STATUS "Detected: ${my_service_pack}")
# endif()
# endif()
#
# ===========================
# Function DetermineVSServicePack sets the given variable to one of the
# following values or an empty string if unknown:
# vc80, vc80sp1
# vc90, vc90sp1
# vc100, vc100sp1
# vc110, vc110sp1, vc110sp2
#=============================================================================
# Copyright 2009-2011 Kitware, Inc.
# Copyright 2009-2013 Kitware, Inc.
# Copyright 2009-2010 Philip Lowman <philip@yhbt.com>
# Copyright 2010-2011 Aaron C. meadows <cmake@shadowguarddev.com>
#
@ -57,6 +50,10 @@ function(_DetermineVSServicePackFromCompiler _OUT_VAR _cl_version)
set(_version "vc100sp1")
elseif(${_cl_version} VERSION_EQUAL "17.00.50727.1")
set(_version "vc110")
elseif(${_cl_version} VERSION_EQUAL "17.00.51106.1")
set(_version "vc110sp1")
elseif(${_cl_version} VERSION_EQUAL "17.00.60315.1")
set(_version "vc110sp2")
else()
set(_version "")
endif()

View File

@ -3,7 +3,7 @@
# NAME = name of the package
# COMPILER_ID = the CMake compiler ID for which the result is, i.e. GNU/Intel/Clang/MSVC, etc.
# LANGUAGE = language for which the result will be used, i.e. C/CXX/Fortan/ASM
# MODE = EXIST : only check for existance of the given package
# MODE = EXIST : only check for existence of the given package
# COMPILE : print the flags needed for compiling an object file which uses the given package
# LINK : print the flags needed for linking when using the given package
# QUIET = if TRUE, don't print anything

View File

@ -51,7 +51,7 @@
# MY_INSTALL_CONFIGURATIONS = "" (was not used)
# MY_INSTALL_UNPARSED_ARGUMENTS = "blub" (no value expected after "OPTIONAL"
#
# You can the continue and process these variables.
# You can then continue and process these variables.
#
# Keywords terminate lists of values, e.g. if directly after a one_value_keyword
# another recognized keyword follows, this is interpreted as the beginning of

View File

@ -26,10 +26,11 @@ function(CMAKE_PARSE_IMPLICIT_LINK_INFO text lib_var dir_var fwk_var log_var obj
set(linker "CMAKE_LINKER-NOTFOUND")
if(CMAKE_LINKER)
get_filename_component(linker ${CMAKE_LINKER} NAME)
string(REGEX REPLACE "([][+.*?()^$])" "\\\\\\1" linker "${linker}")
endif()
# Construct a regex to match linker lines. It must match both the
# whole line and just the command (argv[0]).
set(linker_regex "^( *|.*[/\\])(${linker}|ld|collect2)[^/\\]*( |$)")
set(linker_regex "^( *|.*[/\\])(${linker}|([^/\\]+-)?ld|collect2)[^/\\]*( |$)")
set(linker_exclude_regex "collect2 version ")
set(log "${log} link line regex: [${linker_regex}]\n")
string(REGEX REPLACE "\r?\n" ";" output_lines "${text}")

View File

@ -1,3 +1,8 @@
set(CMAKE_HOST_SYSTEM "@CMAKE_HOST_SYSTEM@")
set(CMAKE_HOST_SYSTEM_NAME "@CMAKE_HOST_SYSTEM_NAME@")
set(CMAKE_HOST_SYSTEM_VERSION "@CMAKE_HOST_SYSTEM_VERSION@")
set(CMAKE_HOST_SYSTEM_PROCESSOR "@CMAKE_HOST_SYSTEM_PROCESSOR@")
@INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED@
set(CMAKE_SYSTEM "@CMAKE_SYSTEM@")
@ -5,11 +10,6 @@ set(CMAKE_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@")
set(CMAKE_SYSTEM_VERSION "@CMAKE_SYSTEM_VERSION@")
set(CMAKE_SYSTEM_PROCESSOR "@CMAKE_SYSTEM_PROCESSOR@")
set(CMAKE_HOST_SYSTEM "@CMAKE_HOST_SYSTEM@")
set(CMAKE_HOST_SYSTEM_NAME "@CMAKE_HOST_SYSTEM_NAME@")
set(CMAKE_HOST_SYSTEM_VERSION "@CMAKE_HOST_SYSTEM_VERSION@")
set(CMAKE_HOST_SYSTEM_PROCESSOR "@CMAKE_HOST_SYSTEM_PROCESSOR@")
set(CMAKE_CROSSCOMPILING "@CMAKE_CROSSCOMPILING@")
set(CMAKE_SYSTEM_LOADED 1)

View File

@ -263,8 +263,8 @@
#
##variable
# CPACK_PACKAGE_INSTALL_REGISTRY_KEY - Registry key used when
# installing this project. This is only used
# by installer for Windows.
# installing this project. This is only used by installer for Windows.
# The default value is based on the installation directory.
##end
##variable
# CPACK_CREATE_DESKTOP_LINKS - List of desktop links to create.

View File

@ -2,7 +2,7 @@
##end
##module
# - PackageMaker CPack generator (Mac OS X).
# The following variable is specific to installers build on Mac OS X
# The following variable is specific to installers built on Mac OS X
# using PackageMaker:
##end
#

View File

@ -163,6 +163,8 @@
# May be set by the user in order to specify a USER binary spec file
# to be used by CPackRPM instead of generating the file.
# The specified file will be processed by configure_file( @ONLY).
# One can provide a component specific file by setting
# CPACK_RPM_<componentName>_USER_BINARY_SPECFILE.
##end
##variable
# CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE - Spec file template.
@ -223,6 +225,24 @@
# The refered file will be read and directly put after the %changelog
# section.
##end
##variable
# CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST - list of path to be excluded.
# Mandatory : NO
# Default : /etc /etc/init.d /usr /usr/share /usr/share/doc /usr/bin /usr/lib /usr/lib64 /usr/include
# May be used to exclude path (directories or files) from the auto-generated
# list of paths discovered by CPack RPM. The defaut value contains a reasonable
# set of values if the variable is not defined by the user. If the variable
# is defined by the user then CPackRPM will NOT any of the default path.
# If you want to add some path to the default list then you can use
# CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION variable.
##end
##variable
# CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - additional list of path to be excluded.
# Mandatory : NO
# Default : -
# May be used to add more exclude path (directories or files) from the initial
# default list of excluded paths. See CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST.
##end
#=============================================================================
# Copyright 2007-2009 Kitware, Inc.
@ -666,6 +686,30 @@ if(CPACK_RPM_PACKAGE_RELOCATABLE)
endforeach()
endif()
if (CPACK_RPM_PACKAGE_DEBUG)
message("CPackRPM:Debug: Initial list of path to OMIT in RPM: ${_RPM_DIRS_TO_OMIT}")
endif()
if (NOT DEFINED CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST)
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST /etc /etc/init.d /usr /usr/share /usr/share/doc /usr/bin /usr/lib /usr/lib64 /usr/include)
if (CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION)
message("CPackRPM:Debug: Adding ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION} to builtin omit list.")
list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST "${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION}")
endif()
endif()
if(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST)
if (CPACK_RPM_PACKAGE_DEBUG)
message("CPackRPM:Debug: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST= ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST}")
endif()
foreach(_DIR ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST})
list(APPEND _RPM_DIRS_TO_OMIT "-o;-path;.${_DIR}")
endforeach()
endif()
if (CPACK_RPM_PACKAGE_DEBUG)
message("CPackRPM:Debug: Final list of path to OMIT in RPM: ${_RPM_DIRS_TO_OMIT}")
endif()
# Use files tree to construct files command (spec file)
# We should not forget to include symlinks (thus -o -type l)
# We should include directory as well (thus -type d)
@ -832,11 +876,18 @@ if(CPACK_RPM_PACKAGE_DEBUG)
message("CPackRPM:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
endif()
# USER generated spec file handling.
# We should generate a spec file template:
#
# USER generated/provided spec file handling.
#
# We can have a component specific spec file.
if(CPACK_RPM_PACKAGE_COMPONENT AND CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_USER_BINARY_SPECFILE)
set(CPACK_RPM_USER_BINARY_SPECFILE ${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_USER_BINARY_SPECFILE})
endif()
# We should generate a USER spec file template:
# - either because the user asked for it : CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
# - or the user did not provide one : NOT CPACK_RPM_USER_BINARY_SPECFILE
#
if(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE OR NOT CPACK_RPM_USER_BINARY_SPECFILE)
file(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
"# -*- rpm-spec -*-
@ -902,9 +953,9 @@ mv \"\@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot\" $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
${CPACK_RPM_INSTALL_FILES}
${CPACK_RPM_ABSOLUTE_INSTALL_FILES}
${CPACK_RPM_USER_INSTALL_FILES}
\@CPACK_RPM_INSTALL_FILES\@
\@CPACK_RPM_ABSOLUTE_INSTALL_FILES\@
\@CPACK_RPM_USER_INSTALL_FILES\@
%changelog
\@CPACK_RPM_SPEC_CHANGELOG\@

View File

@ -84,13 +84,13 @@ if(BUILD_TESTING)
endmacro()
macro(SET_IF_SET var val)
if(NOT "${val}" MATCHES "^$")
if(NOT "${val}" STREQUAL "")
set("${var}" "${val}")
endif()
endmacro()
macro(SET_IF_SET_AND_NOT_SET var val)
if(NOT "${val}" MATCHES "^$")
if(NOT "${val}" STREQUAL "")
SET_IF_NOT_SET("${var}" "${val}")
endif()
endmacro()

View File

@ -26,6 +26,12 @@ include(CheckCSourceCompiles)
macro (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
# Normalize locale during test compilation.
set(_CheckCCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
foreach(v ${_CheckCCompilerFlag_LOCALE_VARS})
set(_CheckCCompilerFlag_SAVED_${v} "$ENV{${v}}")
set(ENV{${v}} C)
endforeach()
CHECK_C_SOURCE_COMPILES("int main(void) { return 0; }" ${_RESULT}
# Some compilers do not fail with a bad flag
FAIL_REGEX "command line option .* is valid for .* but not for C" # GNU
@ -41,5 +47,11 @@ macro (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
FAIL_REGEX "command option .* is not recognized" # XL
FAIL_REGEX "WARNING: unknown flag:" # Open64
)
foreach(v ${_CheckCCompilerFlag_LOCALE_VARS})
set(ENV{${v}} ${_CheckCCompilerFlag_SAVED_${v}})
unset(_CheckCCompilerFlag_SAVED_${v})
endforeach()
unset(_CheckCCompilerFlag_LOCALE_VARS)
set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
endmacro ()

View File

@ -26,6 +26,13 @@ include(CheckCXXSourceCompiles)
macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
# Normalize locale during test compilation.
set(_CheckCXXCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
foreach(v ${_CheckCXXCompilerFlag_LOCALE_VARS})
set(_CheckCXXCompilerFlag_SAVED_${v} "$ENV{${v}}")
set(ENV{${v}} C)
endforeach()
CHECK_CXX_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}
# Some compilers do not fail with a bad flag
FAIL_REGEX "command line option .* is valid for .* but not for C\\\\+\\\\+" # GNU
@ -43,6 +50,12 @@ macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
FAIL_REGEX "File with unknown suffix passed to linker" # PGI
FAIL_REGEX "WARNING: unknown flag:" # Open64
)
foreach(v ${_CheckCXXCompilerFlag_LOCALE_VARS})
set(ENV{${v}} ${_CheckCXXCompilerFlag_SAVED_${v}})
unset(_CheckCXXCompilerFlag_SAVED_${v})
endforeach()
unset(_CheckCXXCompilerFlag_LOCALE_VARS)
set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
endmacro ()

View File

@ -4,7 +4,7 @@
# Check that the <function> is provided by libraries on the system and
# store the result in a <variable>. This does not verify that any
# system header file declares the function, only that it can be found
# at link time (considure using CheckSymbolExists).
# at link time (consider using CheckSymbolExists).
#
# The following variables may be set before calling this macro to
# modify the way the check is run:

View File

@ -15,4 +15,4 @@
message(SEND_ERROR
"Modules/CheckSizeOf.cmake has been removed. "
"Use Modules/CheckTypeSize.cmake instead. This "
"compatability check may be removed before the next release!")
"compatibility check may be removed before the next release!")

View File

@ -1,2 +1,4 @@
include(Compiler/Clang)
__compiler_clang(CXX)
set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")

View File

@ -24,4 +24,6 @@ macro(__compiler_clang lang)
__compiler_gnu(${lang})
set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
set(CMAKE_${lang}_COMPILE_OPTION_TARGET "-target ")
endmacro()

View File

@ -1,2 +1,12 @@
include(Compiler/GNU)
__compiler_gnu(CXX)
if (WIN32)
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.6)
set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fno-keep-inline-dllexport")
endif()
else()
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.2)
set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
endif()
endif()

View File

@ -25,8 +25,12 @@ macro(__compiler_gnu lang)
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4)
set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
endif()
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.2)
set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
endif()
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
set(CMAKE_SYSROOT_FLAG "--sysroot=")
# Older versions of gcc (< 4.5) contain a bug causing them to report a missing
# header file as a warning if depfiles are enabled, causing check_header_file

View File

@ -0,0 +1,14 @@
# This file is processed when the IAR compiler is used for an assembler file
include(Compiler/IAR)
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> <SOURCE> <DEFINES> <FLAGS> -o <OBJECT>")
if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "ARM")
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
endif()
if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "AVR")
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s90;asm;msa)
endif()

View File

@ -0,0 +1,34 @@
# This file is processed when the IAR compiler is used for a C file
include(Compiler/IAR)
set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <SOURCE> <DEFINES> <FLAGS> -o <OBJECT>")
set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <SOURCE> <DEFINES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <SOURCE> <DEFINES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
# The toolchains for ARM and AVR are quite different:
if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "ARM")
set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_LINKER> <OBJECTS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
set(CMAKE_C_CREATE_STATIC_LIBRARY "<CMAKE_AR> <TARGET> --create <LINK_FLAGS> <OBJECTS> ")
endif()
if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "AVR")
set(CMAKE_C_OUTPUT_EXTENSION ".r90")
if(NOT CMAKE_C_LINK_FLAGS)
set(CMAKE_C_LINK_FLAGS "-Fmotorola")
endif()
set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_LINKER> <OBJECTS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
set(CMAKE_C_CREATE_STATIC_LIBRARY "<CMAKE_AR> -o <TARGET> <OBJECTS> ")
endif()
# add the target specific include directory:
get_filename_component(_compilerDir "${CMAKE_C_COMPILER}" PATH)
get_filename_component(_compilerDir "${_compilerDir}" PATH)
include_directories("${_compilerDir}/inc" )

View File

@ -0,0 +1,34 @@
# This file is processed when the IAR compiler is used for a C++ file
include(Compiler/IAR)
set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <SOURCE> <DEFINES> <FLAGS> -o <OBJECT>")
set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <SOURCE> <DEFINES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <SOURCE> <DEFINES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "ARM")
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_LINKER> <OBJECTS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
set(CMAKE_CXX_CREATE_STATIC_LIBRARY "<CMAKE_AR> <TARGET> --create <LINK_FLAGS> <OBJECTS> ")
endif()
if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "AVR")
set(CMAKE_CXX_OUTPUT_EXTENSION ".r90")
if(NOT CMAKE_CXX_LINK_FLAGS)
set(CMAKE_CXX_LINK_FLAGS "-Fmotorola")
endif()
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_LINKER> <OBJECTS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
set(CMAKE_CXX_CREATE_STATIC_LIBRARY "<CMAKE_AR> -o <TARGET> <OBJECTS> ")
endif()
# add the target specific include directory:
get_filename_component(_compilerDir "${CMAKE_C_COMPILER}" PATH)
get_filename_component(_compilerDir "${_compilerDir}" PATH)
include_directories("${_compilerDir}/inc")

View File

@ -0,0 +1,46 @@
# This file is processed when the IAR compiler is used for a C or C++ file
# Documentation can be downloaded here: http://www.iar.com/website1/1.0.1.0/675/1/
# The initial feature request is here: http://www.cmake.org/Bug/view.php?id=10176
# It also contains additional links and information.
if(_IAR_CMAKE_LOADED)
return()
endif()
set(_IAR_CMAKE_LOADED TRUE)
get_filename_component(_CMAKE_C_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
get_filename_component(_CMAKE_ASM_TOOLCHAIN_LOCATION "${CMAKE_ASM_COMPILER}" PATH)
if("${CMAKE_C_COMPILER}" MATCHES "arm" OR "${CMAKE_CXX_COMPILER}" MATCHES "arm" OR "${CMAKE_ASM_COMPILER}" MATCHES "arm")
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
# For arm, IAR uses the "ilinkarm" linker and "iarchive" archiver:
find_program(CMAKE_IAR_LINKER ilinkarm HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" "${_CMAKE_ASM_TOOLCHAIN_LOCATION}")
find_program(CMAKE_IAR_AR iarchive HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" "${_CMAKE_ASM_TOOLCHAIN_LOCATION}" )
set(IAR_TARGET_ARCHITECTURE "ARM" CACHE STRING "IAR compiler target architecture")
endif()
if("${CMAKE_C_COMPILER}" MATCHES "avr" OR "${CMAKE_CXX_COMPILER}" MATCHES "avr" OR "${CMAKE_ASM_COMPILER}" MATCHES "avr")
set(CMAKE_EXECUTABLE_SUFFIX ".bin")
# For AVR and AVR32, IAR uses the "xlink" linker and the "xar" archiver:
find_program(CMAKE_IAR_LINKER xlink HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" "${_CMAKE_ASM_TOOLCHAIN_LOCATION}" )
find_program(CMAKE_IAR_AR xar HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" "${_CMAKE_ASM_TOOLCHAIN_LOCATION}" )
set(IAR_TARGET_ARCHITECTURE "AVR" CACHE STRING "IAR compiler target architecture")
set(CMAKE_LIBRARY_PATH_FLAG "-I")
endif()
if(NOT IAR_TARGET_ARCHITECTURE)
message(FATAL_ERROR "The IAR compiler for this architecture is not yet supported "
" by CMake. Please go to http://www.cmake.org/Bug and enter a feature request there.")
endif()
set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
set(CMAKE_AR "${CMAKE_IAR_AR}" CACHE FILEPATH "The IAR archiver" FORCE)

View File

@ -6,5 +6,9 @@ set(CMAKE_C_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG")
set(CMAKE_C_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")
set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0)
set(CMAKE_C_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
endif()
set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")

View File

@ -6,5 +6,9 @@ set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.0)
set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
endif()
set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")

View File

@ -56,7 +56,7 @@
2C18F0B415DC1DC700593670 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = @id_type@;
explicitFileType = @id_type@;
path = @id_src@;
refType = 4;
sourceTree = "<group>";

View File

@ -7,7 +7,7 @@
objects = {
2C18F0B615DC1E0300593670 = {isa = PBXBuildFile; fileRef = 2C18F0B415DC1DC700593670; };
2C18F0B415DC1DC700593670 = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = @id_type@; path = @id_src@; sourceTree = "<group>"; };
2C18F0B415DC1DC700593670 = {isa = PBXFileReference; fileEncoding = 4; explicitFileType = @id_type@; path = @id_src@; sourceTree = "<group>"; };
8DD76F6C0486A84900D96B5E = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CompilerId@id_lang@; sourceTree = BUILT_PRODUCTS_DIR; };
08FB7794FE84155DC02AAC07 = {

View File

@ -7,7 +7,7 @@
objects = {
2C18F0B615DC1E0300593670 = {isa = PBXBuildFile; fileRef = 2C18F0B415DC1DC700593670; };
2C18F0B415DC1DC700593670 = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = @id_type@; path = @id_src@; sourceTree = "<group>"; };
2C18F0B415DC1DC700593670 = {isa = PBXFileReference; fileEncoding = 4; explicitFileType = @id_type@; path = @id_src@; sourceTree = "<group>"; };
08FB7794FE84155DC02AAC07 = {
isa = PBXGroup;
children = (

View File

@ -391,7 +391,7 @@ function(_ExternalData_arg target arg options var_file)
# Regular expression to match associated files.
string(REGEX REPLACE "^REGEX:" "" regex "${opt}")
list(APPEND associated_regex "${regex}")
elseif("x${opt}" MATCHES "^x:$")
elseif(opt STREQUAL ":")
# Activate series matching.
set(series_option "${opt}")
elseif("x${opt}" MATCHES "^[^][:/*?]+$")
@ -551,7 +551,10 @@ function(_ExternalData_arg_find_files pattern regex)
set(relname "${entry}")
set(alg "")
endif()
if("x${relname}" MATCHES "^x${regex}$" AND NOT IS_DIRECTORY "${top_src}/${entry}")
if("x${relname}" MATCHES "^x${regex}$" # matches
AND NOT IS_DIRECTORY "${top_src}/${entry}" # not a directory
AND NOT "x${relname}" MATCHES "(^x|/)\\.ExternalData_" # not staged obj
)
set(name "${top_src}/${relname}")
set(file "${top_bin}/${relname}")
if(alg)

View File

@ -1251,10 +1251,10 @@ function(_ep_add_download_command name)
get_filename_component(work_dir "${source_dir}" PATH)
set(comment "Performing download step (SVN checkout) for '${name}'")
set(svn_user_pw_args "")
if(svn_username)
if(DEFINED svn_username)
set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
endif()
if(svn_password)
if(DEFINED svn_password)
set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
endif()
if(svn_trust_cert)
@ -1473,10 +1473,10 @@ function(_ep_add_update_command name)
get_property(svn_password TARGET ${name} PROPERTY _EP_SVN_PASSWORD)
get_property(svn_trust_cert TARGET ${name} PROPERTY _EP_SVN_TRUST_CERT)
set(svn_user_pw_args "")
if(svn_username)
if(DEFINED svn_username)
set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
endif()
if(svn_password)
if(DEFINED svn_password)
set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
endif()
if(svn_trust_cert)

View File

@ -41,7 +41,7 @@
# Boost_LIBRARY_DIR - Directory containing Boost libraries
# Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant
# Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant
# Users may set the these hints or results as cache entries. Projects should
# Users may set these hints or results as cache entries. Projects should
# not read these entries directly but instead use the above result variables.
# Note that some hint names start in upper-case "BOOST". One may specify
# these as environment variables if they are not specified as CMake variables
@ -154,7 +154,7 @@
#-------------------------------------------------------------------------------
# Before we go searching, check whether boost-cmake is avaialble, unless the
# Before we go searching, check whether boost-cmake is available, unless the
# user specifically asked NOT to search for boost-cmake.
#
# If Boost_DIR is set, this behaves as any find_package call would. If not,
@ -247,7 +247,7 @@ macro(_Boost_ADJUST_LIB_VARS basename)
endif()
endif()
# Make variables changeble to the advanced user
# Make variables changeable to the advanced user
mark_as_advanced(
Boost_${basename}_LIBRARY_RELEASE
Boost_${basename}_LIBRARY_DEBUG
@ -930,9 +930,13 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
"Searching for ${UPPERCOMPONENT}_LIBRARY_RELEASE: ${_boost_RELEASE_NAMES}")
endif()
# Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS}")
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE
NAMES ${_boost_RELEASE_NAMES}
HINTS ${_boost_LIBRARY_SEARCH_DIRS}
HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
NAMES_PER_DIR
DOC "${_boost_docstring_release}"
)
@ -962,9 +966,13 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
"Searching for ${UPPERCOMPONENT}_LIBRARY_DEBUG: ${_boost_DEBUG_NAMES}")
endif()
# Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS}")
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
NAMES ${_boost_DEBUG_NAMES}
HINTS ${_boost_LIBRARY_SEARCH_DIRS}
HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
NAMES_PER_DIR
DOC "${_boost_docstring_debug}"
)
@ -1014,7 +1022,12 @@ if(Boost_FOUND)
# We were unable to find some libraries, so generate a sensible
# error message that lists the libraries we were unable to find.
set(Boost_ERROR_REASON
"${Boost_ERROR_REASON}\nThe following Boost libraries could not be found:\n")
"${Boost_ERROR_REASON}\nCould not find the following")
if(Boost_USE_STATIC_LIBS)
set(Boost_ERROR_REASON "${Boost_ERROR_REASON} static")
endif()
set(Boost_ERROR_REASON
"${Boost_ERROR_REASON} Boost libraries:\n")
foreach(COMPONENT ${_Boost_MISSING_COMPONENTS})
set(Boost_ERROR_REASON
"${Boost_ERROR_REASON} boost_${COMPONENT}\n")

View File

@ -920,8 +920,14 @@ function(CUDA_COMPUTE_BUILD_PATH path build_path)
if (IS_ABSOLUTE "${bpath}")
# Absolute paths are generally unnessary, especially if something like
# file(GLOB_RECURSE) is used to pick up the files.
string(FIND "${bpath}" "${CMAKE_CURRENT_BINARY_DIR}" _binary_dir_pos)
if (_binary_dir_pos EQUAL 0)
file(RELATIVE_PATH bpath "${CMAKE_CURRENT_BINARY_DIR}" "${bpath}")
else()
file(RELATIVE_PATH bpath "${CMAKE_CURRENT_SOURCE_DIR}" "${bpath}")
endif()
endif()
# This recipie is from cmLocalGenerator::CreateSafeUniqueObjectFileName in the
# CMake source.
@ -1021,7 +1027,10 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
# Initialize our list of includes with the user ones followed by the CUDA system ones.
set(CUDA_NVCC_INCLUDE_ARGS ${CUDA_NVCC_INCLUDE_ARGS_USER} "-I${CUDA_INCLUDE_DIRS}")
# Get the include directories for this directory and use them for our nvcc command.
# Remove duplicate entries which may be present since include_directories
# in CMake >= 2.8.8 does not remove them.
get_directory_property(CUDA_NVCC_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES)
list(REMOVE_DUPLICATES CUDA_NVCC_INCLUDE_DIRECTORIES)
if(CUDA_NVCC_INCLUDE_DIRECTORIES)
foreach(dir ${CUDA_NVCC_INCLUDE_DIRECTORIES})
list(APPEND CUDA_NVCC_INCLUDE_ARGS -I${dir})

View File

@ -63,7 +63,7 @@ if (${depend_text} MATCHES ".+")
if (EXISTS "/${file}")
set(file "/${file}")
else()
message(WARNING " Removing non-existant dependency file: ${file}")
message(WARNING " Removing non-existent dependency file: ${file}")
set(file "")
endif()
endif()

View File

@ -45,7 +45,7 @@ if(APPLE)
set( FLTK2_PLATFORM_DEPENDENT_LIBS "-framework Carbon -framework Cocoa -framework ApplicationServices -lz")
endif()
# If FLTK2_INCLUDE_DIR is already defined we assigne its value to FLTK2_DIR
# If FLTK2_INCLUDE_DIR is already defined we assign its value to FLTK2_DIR
if(FLTK2_INCLUDE_DIR)
set(FLTK2_DIR ${FLTK2_INCLUDE_DIR})
else()

View File

@ -50,6 +50,9 @@ find_path(FREETYPE_INCLUDE_DIR_ft2build ft2build.h
/usr/local/X11R6
/usr/local/X11
/usr/freeware
ENV GTKMM_BASEPATH
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
PATH_SUFFIXES include/freetype2 include
)
@ -61,6 +64,9 @@ find_path(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h
/usr/local/X11R6
/usr/local/X11
/usr/freeware
ENV GTKMM_BASEPATH
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
PATH_SUFFIXES include/freetype2 include
)
@ -74,6 +80,9 @@ find_library(FREETYPE_LIBRARY
/usr/local/X11R6
/usr/local/X11
/usr/freeware
ENV GTKMM_BASEPATH
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
)
# set the user variables

View File

@ -164,6 +164,7 @@ function(_GTK2_FIND_INCLUDE_DIR _var _hdr)
cairo
cairomm-1.0
gdk-pixbuf-2.0
gthread-2.0
gdkmm-2.4
giomm-2.4
gtk-2.0
@ -460,9 +461,13 @@ foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
_GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h)
_GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango false true)
_GTK2_FIND_LIBRARY (GTK2_PANGOCAIRO_LIBRARY pangocairo false true)
_GTK2_FIND_INCLUDE_DIR(GTK2_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h)
_GTK2_FIND_LIBRARY (GTK2_GDK_PIXBUF_LIBRARY gdk_pixbuf false true)
_GTK2_FIND_LIBRARY (GTK2_GTHREAD_LIBRARY gthread false true)
_GTK2_FIND_LIBRARY (GTK2_GIO_LIBRARY gio false true)
_GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h)
@ -489,8 +494,6 @@ foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
_GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMMCONFIG_INCLUDE_DIR pangommconfig.h)
_GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm true true)
_GTK2_FIND_LIBRARY (GTK2_PANGOCAIRO_LIBRARY pangocairo true true)
_GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h)
_GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMMCONFIG_INCLUDE_DIR cairommconfig.h)
_GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm true true)

View File

@ -17,7 +17,7 @@
#
# USE_ITK_FILE - The full path to the UseITK.cmake file.
# This is provided for backward
# compatability. Use ITK_USE_FILE
# compatibility. Use ITK_USE_FILE
# instead.
#=============================================================================
@ -52,6 +52,6 @@ if(NOT ITK_FOUND)
endif()
if(ITK_FOUND)
# Set USE_ITK_FILE for backward-compatability.
# Set USE_ITK_FILE for backward-compatibility.
set(USE_ITK_FILE ${ITK_USE_FILE})
endif()

View File

@ -81,7 +81,7 @@ function(FIND_IMAGEMAGICK_API component header)
${ImageMagick_INCLUDE_DIRS}
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath]/include"
PATH_SUFFIXES
ImageMagick
ImageMagick ImageMagick-6
DOC "Path to the ImageMagick include dir."
)
find_library(ImageMagick_${component}_LIBRARY

View File

@ -86,7 +86,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/GetPrerequisites.cmake)
#
# The compilers are detected in this order:
#
# 1. Try to find the most generic availble MPI compiler, as this is usually set up by
# 1. Try to find the most generic available MPI compiler, as this is usually set up by
# cluster admins. e.g., if plain old mpicc is available, we'll use it and assume it's
# the right compiler.
#

View File

@ -28,16 +28,18 @@
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
if (WIN32)
if (CYGWIN)
set(_OpenGL_REQUIRED_VARS OPENGL_gl_LIBRARY)
if (CYGWIN)
find_path(OPENGL_INCLUDE_DIR GL/gl.h )
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
find_library(OPENGL_gl_LIBRARY opengl32 )
find_library(OPENGL_glu_LIBRARY glu32 )
else ()
elseif (WIN32)
if(BORLAND)
set (OPENGL_gl_LIBRARY import32 CACHE STRING "OpenGL library for win32")
@ -47,17 +49,14 @@ if (WIN32)
set (OPENGL_glu_LIBRARY glu32 CACHE STRING "GLU library for win32")
endif()
endif ()
else ()
if (APPLE)
elseif (APPLE)
find_library(OPENGL_gl_LIBRARY OpenGL DOC "OpenGL lib for OSX")
find_library(OPENGL_glu_LIBRARY AGL DOC "AGL lib for OSX")
find_path(OPENGL_INCLUDE_DIR OpenGL/gl.h DOC "Include for OpenGL on OSX")
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
else()
else()
if (CMAKE_SYSTEM_NAME MATCHES "HP-UX")
# Handle HP-UX cases where we only want to find OpenGL in either hpux64
# or hpux32 depending on if we're doing a 64 bit build.
@ -90,6 +89,7 @@ else ()
/opt/graphics/OpenGL/include /usr/X11R6/include
${_OPENGL_INCLUDE_PATH}
)
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
find_path(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h
/usr/share/doc/NVIDIA_GLX-1.0/include
@ -111,18 +111,15 @@ else ()
# On Unix OpenGL most certainly always requires X11.
# Feel free to tighten up these conditions if you don't
# think this is always true.
# It's not true on OSX.
if (OPENGL_gl_LIBRARY)
if(NOT X11_FOUND)
include(${CMAKE_CURRENT_LIST_DIR}/FindX11.cmake)
endif()
if (X11_FOUND)
if (NOT APPLE)
set (OPENGL_LIBRARIES ${X11_LIBRARIES})
endif ()
endif ()
endif ()
find_library(OPENGL_glu_LIBRARY
NAMES GLU MesaGLU
@ -132,7 +129,6 @@ else ()
/usr/shlib /usr/X11R6/lib
)
endif()
endif ()
if(OPENGL_gl_LIBRARY)
@ -162,7 +158,8 @@ set(OPENGL_INCLUDE_PATH ${OPENGL_INCLUDE_DIR})
# handle the QUIETLY and REQUIRED arguments and set OPENGL_FOUND to TRUE if
# all listed variables are TRUE
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenGL DEFAULT_MSG OPENGL_gl_LIBRARY)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenGL REQUIRED_VARS ${_OpenGL_REQUIRED_VARS})
unset(_OpenGL_REQUIRED_VARS)
mark_as_advanced(
OPENGL_INCLUDE_DIR

View File

@ -140,10 +140,10 @@ if(WIN32 AND NOT CYGWIN)
set( OPENSSL_LIBRARIES ${SSL_EAY_LIBRARY} ${LIB_EAY_LIBRARY} )
elseif(MINGW)
# same player, for MingW
# same player, for MinGW
set(LIB_EAY_NAMES libeay32)
set(SSL_EAY_NAMES ssleay32)
if(CMAKE_CROSS_COMPILING)
if(CMAKE_CROSSCOMPILING)
list(APPEND LIB_EAY_NAMES crypto)
list(APPEND SSL_EAY_NAMES ssl)
endif()

View File

@ -156,6 +156,16 @@ function(_protobuf_find_libraries name filename)
endif()
endfunction()
# Internal function: find threads library
function(_protobuf_find_threads)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads)
if(Threads_FOUND)
list(APPEND PROTOBUF_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
set(PROTOBUF_LIBRARIES "${PROTOBUF_LIBRARIES}" PARENT_SCOPE)
endif()
endfunction()
#
# Main.
#
@ -190,6 +200,9 @@ if(MSVC)
set(CMAKE_FIND_LIBRARY_PREFIXES "${PROTOBUF_ORIG_FIND_LIBRARY_PREFIXES}")
endif()
if(UNIX)
_protobuf_find_threads()
endif()
# Find the include directory
find_path(PROTOBUF_INCLUDE_DIR

View File

@ -115,7 +115,7 @@
# You should have a look on the AUTOMOC property for targets to achieve the same results.
#
# macro QT4_ADD_DBUS_INTERFACE(outfiles interface basename)
# Create a the interface header and implementation files with the
# Create the interface header and implementation files with the
# given basename from the given interface xml file and add it to
# the list of sources.
#
@ -171,7 +171,7 @@
# in: ts_files
# generates commands to create .qm from .ts - files. The generated
# filenames can be found in qm_files. The ts_files
# must exists and are not updated in any way.
# must exist and are not updated in any way.
#
# function QT4_USE_MODULES( target [link_type] modules...)
# Make <target> use the <modules> from Qt. Using a Qt module means
@ -495,7 +495,7 @@ macro (_QT4_ADJUST_LIB_VARS _camelCaseBasename)
set(QT_INCLUDES "${QT_${basename}_INCLUDE_DIR}" ${QT_INCLUDES})
endif ()
# Make variables changeble to the advanced user
# Make variables changeable to the advanced user
mark_as_advanced(QT_${basename}_LIBRARY QT_${basename}_LIBRARY_RELEASE QT_${basename}_LIBRARY_DEBUG QT_${basename}_INCLUDE_DIR)
endmacro ()
@ -635,10 +635,10 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
)
endif()
# try dropping a hint if trying to use Visual Studio with Qt built by mingw
# try dropping a hint if trying to use Visual Studio with Qt built by MinGW
if(NOT QT_QTCORE_LIBRARY_RELEASE AND MSVC)
if(EXISTS ${QT_LIBRARY_DIR_TMP}/libqtmain.a)
message( FATAL_ERROR "It appears you're trying to use Visual Studio with Qt built by mingw. Those compilers do not produce code compatible with each other.")
message( FATAL_ERROR "It appears you're trying to use Visual Studio with Qt built by MinGW. Those compilers do not produce code compatible with each other.")
endif()
endif()
@ -657,8 +657,11 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
message(WARNING "${QT_QMAKE_EXECUTABLE} reported QT_INSTALL_LIBS as \"${QT_LIBRARY_DIR_TMP}\" "
"but QtCore could not be found there. "
"Qt is NOT installed correctly for the target build environment.")
set(Qt4_FOUND FALSE)
if(Qt4_FIND_REQUIRED)
message( FATAL_ERROR "Could NOT find QtCore. Check ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log for more details.")
else()
return()
endif()
endif()
@ -771,7 +774,7 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
endif()
endif ()
# Make variables changeble to the advanced user
# Make variables changeable to the advanced user
mark_as_advanced( QT_LIBRARY_DIR QT_DOC_DIR QT_MKSPECS_DIR
QT_PLUGINS_DIR QT_TRANSLATIONS_DIR)
@ -881,17 +884,21 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
endforeach()
if(Q_WS_WIN)
set(QT_MODULES ${QT_MODULES} QAxContainer QAxServer)
if (QT_QAXCONTAINER_FOUND)
set(QT_MODULES ${QT_MODULES} QAxContainer)
# Set QT_AXCONTAINER_INCLUDE_DIR and QT_AXSERVER_INCLUDE_DIR
find_path(QT_QAXCONTAINER_INCLUDE_DIR ActiveQt
PATHS ${QT_HEADERS_DIR}/ActiveQt
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
)
endif()
if (QT_QAXSERVER_FOUND)
find_path(QT_QAXSERVER_INCLUDE_DIR ActiveQt
PATHS ${QT_HEADERS_DIR}/ActiveQt
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
)
endif()
endif()
# Set QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR
find_path(QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR QDesignerComponents
@ -1051,15 +1058,19 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
if(Q_WS_WIN)
_QT4_ADJUST_LIB_VARS(qtmain)
if(QT_QAXSERVER_FOUND)
_QT4_ADJUST_LIB_VARS(QAxServer)
set_property(TARGET Qt4::QAxServer PROPERTY
INTERFACE_QT4_NO_LINK_QTMAIN ON
)
set_property(TARGET Qt4::QAxServer APPEND PROPERTY
COMPATIBLE_INTERFACE_BOOL QT4_NO_LINK_QTMAIN)
endif()
if(QT_QAXCONTAINER_FOUND)
_QT4_ADJUST_LIB_VARS(QAxContainer)
endif()
endif()
# Only public dependencies are listed here.
# Eg, QtDBus links to QtXml, but users of QtDBus do not need to
@ -1080,7 +1091,9 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
_qt4_add_target_depends(QtWebKit Gui Network)
_qt4_add_target_private_depends(Qt3Support Xml)
if(QT_VERSION VERSION_GREATER 4.6)
_qt4_add_target_private_depends(QtSvg Xml)
endif()
_qt4_add_target_private_depends(QtDBus Xml)
_qt4_add_target_private_depends(QtUiTools Xml Gui)
_qt4_add_target_private_depends(QtHelp Sql Xml Network)
@ -1090,8 +1103,12 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
_qt4_add_target_private_depends(QtDeclarative XmlPatterns Svg Sql Gui)
_qt4_add_target_private_depends(QtMultimedia Gui)
_qt4_add_target_private_depends(QtOpenGL Gui)
if(QT_QAXSERVER_FOUND)
_qt4_add_target_private_depends(QAxServer Gui)
endif()
if(QT_QAXCONTAINER_FOUND)
_qt4_add_target_private_depends(QAxContainer Gui)
endif()
_qt4_add_target_private_depends(phonon Gui)
if(QT_QTDBUS_FOUND)
_qt4_add_target_private_depends(phonon DBus)

View File

@ -93,7 +93,7 @@ else()
COMPILE_OUTPUT_VARIABLE OUTPUT)
if(THREADS_HAVE_PTHREAD_ARG)
if(THREADS_PTHREAD_ARG MATCHES "^2$")
if(THREADS_PTHREAD_ARG STREQUAL "2")
set(Threads_FOUND TRUE)
message(STATUS "Check if compiler accepts -pthread - yes")
else()

View File

@ -51,7 +51,7 @@ if("${VTK_FIND_VERSION}" VERSION_LESS 4.1)
endif()
endif()
# Construct consitent error messages for use below.
# Construct consistent error messages for use below.
set(VTK_DIR_DESCRIPTION "directory containing VTKConfig.cmake. This is either the root of the build tree, or PREFIX/lib/vtk for an installation.")
if(_VTK_40_ALLOW)
set(VTK_DIR_DESCRIPTION "${VTK_DIR_DESCRIPTION} For VTK 4.0, this is the location of UseVTK.cmake. This is either the root of the build tree or PREFIX/include/vtk for an installation.")
@ -127,7 +127,7 @@ endif()
#-----------------------------------------------------------------------------
if(VTK_FOUND)
# Set USE_VTK_FILE for backward-compatability.
# Set USE_VTK_FILE for backward-compatibility.
set(USE_VTK_FILE ${VTK_USE_FILE})
else()
# VTK not found, explain to the user how to specify its location.

View File

@ -68,6 +68,7 @@ if (UNIX)
/usr/openwin/include
/usr/openwin/share/include
/opt/graphics/OpenGL/include
/opt/X11/include
)
set(X11_LIB_SEARCH_PATH
@ -75,6 +76,7 @@ if (UNIX)
/usr/X11R6/lib
/usr/X11R7/lib
/usr/openwin/lib
/opt/X11/lib
)
find_path(X11_X11_INCLUDE_PATH X11/X.h ${X11_INC_SEARCH_PATH})

View File

@ -53,7 +53,7 @@ if(XMLRPC_FOUND)
endif()
# Parse the include flags.
if("${XMLRPC_C_CONFIG_RESULT}" MATCHES "^0$")
if("${XMLRPC_C_CONFIG_RESULT}" STREQUAL "0")
# Convert the compile flags to a CMake list.
string(REGEX REPLACE " +" ";"
XMLRPC_C_CONFIG_CFLAGS "${XMLRPC_C_CONFIG_CFLAGS}")
@ -91,7 +91,7 @@ if(XMLRPC_FOUND)
endif()
# Parse the library names and directories.
if("${XMLRPC_C_CONFIG_RESULT}" MATCHES "^0$")
if("${XMLRPC_C_CONFIG_RESULT}" STREQUAL "0")
string(REGEX REPLACE " +" ";"
XMLRPC_C_CONFIG_LIBS "${XMLRPC_C_CONFIG_LIBS}")

View File

@ -458,7 +458,7 @@ if(wxWidgets_FIND_STYLE STREQUAL "win32")
wxWidgets-2.5.2
wxWidgets-2.5.1
wxWidgets
DOC "wxWidgets base/installation directory?"
DOC "wxWidgets base/installation directory"
)
# If wxWidgets_ROOT_DIR changed, clear lib dir.
@ -492,7 +492,7 @@ if(wxWidgets_FIND_STYLE STREQUAL "win32")
PATHS
${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_dll # prefer shared
${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_lib
DOC "Path to wxWidgets libraries?"
DOC "Path to wxWidgets libraries"
NO_DEFAULT_PATH
)
else()
@ -509,7 +509,7 @@ if(wxWidgets_FIND_STYLE STREQUAL "win32")
PATHS
${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_lib # prefer static
${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_dll
DOC "Path to wxWidgets libraries?"
DOC "Path to wxWidgets libraries"
NO_DEFAULT_PATH
)
endif()
@ -703,6 +703,7 @@ else()
#-----------------------------------------------------------------
# Support cross-compiling, only search in the target platform.
find_program(wxWidgets_CONFIG_EXECUTABLE wx-config
DOC "Location of wxWidgets library configuration provider binary (wx-config)."
ONLY_CMAKE_FIND_ROOT_PATH
)
@ -843,6 +844,7 @@ set(wxWidgets_FOUND ${WXWIDGETS_FOUND})
# Resource file compiler.
find_program(wxWidgets_wxrc_EXECUTABLE wxrc
${wxWidgets_ROOT_DIR}/utils/wxrc/vc_msw
DOC "Location of wxWidgets resource file compiler binary (wxrc)"
)
#

View File

@ -321,7 +321,7 @@ if(WIN32_STYLE_FIND)
rpcrt4
wsock32
)
## HACK: feed in to optimized / debug libaries if both were FOUND.
## HACK: feed in to optimized / debug libraries if both were FOUND.
set(WXWINDOWS_STATIC_DEBUG_LIBS ${WXWINDOWS_STATIC_DEBUG_LIBS}
wxbase26d
wxbase26d_net
@ -354,7 +354,7 @@ if(WIN32_STYLE_FIND)
##
## if there is at least one shared lib available
## let user choose wether to use shared or static wxwindows libs
## let user choose whether to use shared or static wxwindows libs
if(WXWINDOWS_SHARED_LIBRARY OR WXWINDOWS_SHARED_DEBUG_LIBRARY)
## default value OFF because wxWindows MSVS default build is static
option(WXWINDOWS_USE_SHARED_LIBS
@ -606,7 +606,7 @@ else()
../wx/bin
../../wx/bin )
# check wether wx-config was found:
# check whether wx-config was found:
if(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
# use shared/static wx lib?

View File

@ -267,6 +267,7 @@ macro(_DO_GENERATE_EXPORT_HEADER TARGET_LIBRARY)
if(_GEH_EXPORT_MACRO_NAME)
set(EXPORT_MACRO_NAME ${_GEH_PREFIX_NAME}${_GEH_EXPORT_MACRO_NAME})
endif()
string(MAKE_C_IDENTIFIER ${EXPORT_MACRO_NAME} EXPORT_MACRO_NAME)
if(_GEH_EXPORT_FILE_NAME)
if(IS_ABSOLUTE ${_GEH_EXPORT_FILE_NAME})
set(EXPORT_FILE_NAME ${_GEH_EXPORT_FILE_NAME})
@ -277,12 +278,15 @@ macro(_DO_GENERATE_EXPORT_HEADER TARGET_LIBRARY)
if(_GEH_DEPRECATED_MACRO_NAME)
set(DEPRECATED_MACRO_NAME ${_GEH_PREFIX_NAME}${_GEH_DEPRECATED_MACRO_NAME})
endif()
string(MAKE_C_IDENTIFIER ${DEPRECATED_MACRO_NAME} DEPRECATED_MACRO_NAME)
if(_GEH_NO_EXPORT_MACRO_NAME)
set(NO_EXPORT_MACRO_NAME ${_GEH_PREFIX_NAME}${_GEH_NO_EXPORT_MACRO_NAME})
endif()
string(MAKE_C_IDENTIFIER ${NO_EXPORT_MACRO_NAME} NO_EXPORT_MACRO_NAME)
if(_GEH_STATIC_DEFINE)
set(STATIC_DEFINE ${_GEH_PREFIX_NAME}${_GEH_STATIC_DEFINE})
endif()
string(MAKE_C_IDENTIFIER ${STATIC_DEFINE} STATIC_DEFINE)
if(_GEH_DEFINE_NO_DEPRECATED)
set(DEFINE_NO_DEPRECATED TRUE)
@ -292,6 +296,7 @@ macro(_DO_GENERATE_EXPORT_HEADER TARGET_LIBRARY)
set(NO_DEPRECATED_MACRO_NAME
${_GEH_PREFIX_NAME}${_GEH_NO_DEPRECATED_MACRO_NAME})
endif()
string(MAKE_C_IDENTIFIER ${NO_DEPRECATED_MACRO_NAME} NO_DEPRECATED_MACRO_NAME)
set(INCLUDE_GUARD_NAME "${EXPORT_MACRO_NAME}_H")
@ -300,6 +305,7 @@ macro(_DO_GENERATE_EXPORT_HEADER TARGET_LIBRARY)
if(NOT EXPORT_IMPORT_CONDITION)
set(EXPORT_IMPORT_CONDITION ${TARGET_LIBRARY}_EXPORTS)
endif()
string(MAKE_C_IDENTIFIER ${EXPORT_IMPORT_CONDITION} EXPORT_IMPORT_CONDITION)
configure_file("${_GENERATE_EXPORT_HEADER_MODULE_DIR}/exportheader.cmake.in"
"${EXPORT_FILE_NAME}" @ONLY)
@ -307,11 +313,9 @@ endmacro()
function(GENERATE_EXPORT_HEADER TARGET_LIBRARY)
get_property(type TARGET ${TARGET_LIBRARY} PROPERTY TYPE)
if(${type} STREQUAL "MODULE")
message(WARNING "This macro should not be used with libraries of type MODULE")
return()
endif()
if(NOT ${type} STREQUAL "STATIC_LIBRARY" AND NOT ${type} STREQUAL "SHARED_LIBRARY")
if(NOT ${type} STREQUAL "STATIC_LIBRARY"
AND NOT ${type} STREQUAL "SHARED_LIBRARY"
AND NOT ${type} STREQUAL "MODULE_LIBRARY")
message(WARNING "This macro can only be used with libraries")
return()
endif()

View File

@ -916,7 +916,9 @@ Function .onInit
;Run the uninstaller
uninst:
ClearErrors
ExecWait '$0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
StrLen $2 "\Uninstall.exe"
StrCpy $3 $0 -$2 # remove "\Uninstall.exe" from UninstallString to get path
ExecWait '$0 _?=$3' ;Do not copy the uninstaller to a temp file
IfErrors uninst_failed inst
uninst_failed:

View File

@ -30,6 +30,11 @@ set(CMAKE_SHARED_MODULE_SUFFIX ".so")
set(CMAKE_MODULE_EXISTS 1)
set(CMAKE_DL_LIBS "")
# Enable rpath support for 10.5 and greater where it is known to work.
if("${DARWIN_MAJOR_VERSION}" GREATER 8)
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
endif()
set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
set(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ")
set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}")
@ -207,12 +212,8 @@ if("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$")
"${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -flat_namespace -undefined suppress")
endif()
if(NOT XCODE)
# Enable shared library versioning. This flag is not actually referenced
# but the fact that the setting exists will cause the generators to support
# soname computation.
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name")
endif()
# Enable shared library versioning.
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name")
# Xcode does not support -isystem yet.
if(XCODE)

View File

@ -13,6 +13,9 @@ set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,")
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic")
# http://www.qnx.com/developers/docs/6.4.0/neutrino/utilities/q/qcc.html#examples
set(CMAKE_C_COMPILE_OPTION_TARGET "-V")
set(CMAKE_CXX_COMPILE_OPTION_TARGET "-V")
# Shared libraries with no builtin soname may not be linked safely by
# specifying the file path.

View File

@ -78,23 +78,24 @@ set (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_SHARED_LINKER_FLAGS_R
macro(__embarcadero_language lang)
set(CMAKE_${lang}_COMPILE_OPTIONS_DLL "${_tD}") # Note: This variable is a ';' separated list
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "${_tD}") # ... while this is a space separated string.
set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1)
# compile a source file into an object file
# place <DEFINES> outside the response file because Borland refuses
# to parse quotes from the response file.
set(CMAKE_${lang}_COMPILE_OBJECT
"<CMAKE_${lang}_COMPILER> ${_tR} <DEFINES> ${CMAKE_START_TEMP_FILE}-DWIN32 -o<OBJECT> <FLAGS> ${_COMPILE_${lang}} <SOURCE>${CMAKE_END_TEMP_FILE}"
"<CMAKE_${lang}_COMPILER> ${_tR} <DEFINES> -DWIN32 -o<OBJECT> <FLAGS> ${_COMPILE_${lang}} <SOURCE>"
)
set(CMAKE_${lang}_LINK_EXECUTABLE
"<CMAKE_${lang}_COMPILER> ${_tR} -e<TARGET> ${CMAKE_START_TEMP_FILE}<LINK_FLAGS> <FLAGS> <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
"<CMAKE_${lang}_COMPILER> ${_tR} -e<TARGET> <LINK_FLAGS> <FLAGS> ${CMAKE_START_TEMP_FILE} <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
# "implib -c -w <TARGET_IMPLIB> <TARGET>"
)
# place <DEFINES> outside the response file because Borland refuses
# to parse quotes from the response file.
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
"cpp32 <DEFINES> ${CMAKE_START_TEMP_FILE}-DWIN32 <FLAGS> -o<PREPROCESSED_SOURCE> ${_COMPILE_${lang}} <SOURCE>${CMAKE_END_TEMP_FILE}"
"cpp32 <DEFINES> -DWIN32 <FLAGS> -o<PREPROCESSED_SOURCE> ${_COMPILE_${lang}} <SOURCE>"
)
# Borland >= 5.6 allows -P option for cpp32, <= 5.5 does not

View File

@ -81,7 +81,7 @@ endif()
macro(__windows_compiler_intel lang)
set(CMAKE_${lang}_COMPILE_OBJECT
"<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} /Fo<OBJECT> <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
"<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} /Fo<OBJECT> /Fd<OBJECT_DIR>/ <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
"<CMAKE_${lang}_COMPILER> > <PREPROCESSED_SOURCE> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <FLAGS> -E <SOURCE>${CMAKE_END_TEMP_FILE}")
set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
@ -91,7 +91,7 @@ macro(__windows_compiler_intel lang)
set(CMAKE_${lang}_CREATE_SHARED_MODULE "${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
set(CMAKE_${lang}_COMPILER_LINKER_OPTION_FLAG_EXECUTABLE "/link")
set(CMAKE_${lang}_LINK_EXECUTABLE
"<CMAKE_${lang}_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /Fe<TARGET> <OBJECTS> /link /implib:<TARGET_IMPLIB> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
"<CMAKE_${lang}_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /Fe<TARGET> <OBJECTS> /link /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
set(CMAKE_${lang}_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000${_FLAGS_${lang}}")
set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Od /RTC1")
set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/DNDEBUG /MD /O1")

View File

@ -22,7 +22,7 @@ set(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:")
set(CMAKE_LINK_LIBRARY_FLAG "")
set(MSVC 1)
# hack: if a new cmake (which uses CMAKE__LINKER) runs on an old build tree
# hack: if a new cmake (which uses CMAKE_LINKER) runs on an old build tree
# (where link was hardcoded) and where CMAKE_LINKER isn't in the cache
# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
# hardcode CMAKE_LINKER here to link, so it behaves as it did before, Alex
@ -52,9 +52,6 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio 6")
endif()
if(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio")
set (CMAKE_NO_BUILD_TYPE 1)
set (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING
"Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.")
mark_as_advanced(CMAKE_CONFIGURATION_TYPES)
endif()
# make sure to enable languages after setting configuration types
@ -231,7 +228,7 @@ macro(__windows_compiler_msvc lang)
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_LINKER> /lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
set(CMAKE_${lang}_COMPILE_OBJECT
"<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> /Fo<OBJECT> /Fd<TARGET_PDB> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
"<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> /Fo<OBJECT> /Fd<OBJECT_DIR>/ -c <SOURCE>${CMAKE_END_TEMP_FILE}")
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
"<CMAKE_${lang}_COMPILER> > <PREPROCESSED_SOURCE> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> -E <SOURCE>${CMAKE_END_TEMP_FILE}")
set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE
@ -240,7 +237,7 @@ macro(__windows_compiler_msvc lang)
set(CMAKE_${lang}_COMPILER_LINKER_OPTION_FLAG_EXECUTABLE "/link")
set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
set(CMAKE_${lang}_LINK_EXECUTABLE
"${_CMAKE_VS_LINK_EXE}<CMAKE_${lang}_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /Fe<TARGET> /Fd<TARGET_PDB> <OBJECTS> /link /implib:<TARGET_IMPLIB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
"${_CMAKE_VS_LINK_EXE}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
set(CMAKE_${lang}_FLAGS_INIT "${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} /D_WINDOWS /W3${_FLAGS_${lang}}")
set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od ${_RTC1}")

View File

@ -38,8 +38,6 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio 6")
endif()
if(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8")
set (CMAKE_NO_BUILD_TYPE 1)
set (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING
"Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.")
endif()
# does the compiler support pdbtype and is it the newer compiler

View File

@ -77,11 +77,13 @@ list(APPEND CMAKE_SYSTEM_PREFIX_PATH "${_CMAKE_INSTALL_DIR}")
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
# Project install destination.
"${CMAKE_INSTALL_PREFIX}"
# MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
/
)
if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
# MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
endif()
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
)

View File

@ -21,15 +21,20 @@
######################################
macro (QT4_EXTRACT_OPTIONS _qt4_files _qt4_options)
macro (QT4_EXTRACT_OPTIONS _qt4_files _qt4_options _qt4_target)
set(${_qt4_files})
set(${_qt4_options})
set(_QT4_DOING_OPTIONS FALSE)
set(_QT4_DOING_TARGET FALSE)
foreach(_currentArg ${ARGN})
if ("${_currentArg}" STREQUAL "OPTIONS")
if ("x${_currentArg}" STREQUAL "xOPTIONS")
set(_QT4_DOING_OPTIONS TRUE)
elseif ("x${_currentArg}" STREQUAL "xTARGET")
set(_QT4_DOING_TARGET TRUE)
else ()
if(_QT4_DOING_OPTIONS)
if(_QT4_DOING_TARGET)
set(${_qt4_target} "${_currentArg}")
elseif(_QT4_DOING_OPTIONS)
list(APPEND ${_qt4_options} "${_currentArg}")
else()
list(APPEND ${_qt4_files} "${_currentArg}")
@ -92,9 +97,8 @@ endmacro()
# helper macro to set up a moc rule
macro (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options)
macro (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target)
# For Windows, create a parameters file to work around command line length limit
if (WIN32)
# Pass the parameters in a file. Set the working directory to
# be that containing the parameters file and reference it by
# just the file name. This is necessary because the moc tool on
@ -108,18 +112,34 @@ macro (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options)
set (_moc_parameters_file ${outfile}_parameters)
set (_moc_parameters ${moc_flags} ${moc_options} -o "${outfile}" "${infile}")
string (REPLACE ";" "\n" _moc_parameters "${_moc_parameters}")
file (WRITE ${_moc_parameters_file} "${_moc_parameters}")
set(targetincludes)
set(targetdefines)
if(moc_target)
list(APPEND targetincludes "$<TARGET_PROPERTY:${moc_target},INCLUDE_DIRECTORIES>")
list(APPEND targetdefines "$<TARGET_PROPERTY:${moc_target},COMPILE_DEFINITIONS>")
set(targetincludes "$<$<BOOL:${targetincludes}>:-I$<JOIN:${targetincludes},\n-I>\n>")
set(targetdefines "$<$<BOOL:${targetdefines}>:-D$<JOIN:${targetdefines},\n-D>\n>")
file (GENERATE
OUTPUT ${_moc_parameters_file}
CONTENT "${targetdefines}${targetincludes}${targetoptions}${_moc_parameters}\n"
CONDITION 1
)
set(targetincludes)
set(targetdefines)
else()
file(WRITE ${_moc_parameters_file} "${_moc_parameters}\n")
endif()
set(_moc_extra_parameters_file @${_moc_parameters_file})
add_custom_command(OUTPUT ${outfile}
COMMAND ${QT_MOC_EXECUTABLE} @${_moc_outfile_name}_parameters
COMMAND ${QT_MOC_EXECUTABLE} ${_moc_extra_parameters_file}
DEPENDS ${infile}
${_moc_working_dir}
VERBATIM)
else ()
add_custom_command(OUTPUT ${outfile}
COMMAND ${QT_MOC_EXECUTABLE}
ARGS ${moc_flags} ${moc_options} -o ${outfile} ${infile}
DEPENDS ${infile} VERBATIM)
endif ()
endmacro ()
@ -131,7 +151,11 @@ macro (QT4_GENERATE_MOC infile outfile )
if(NOT IS_ABSOLUTE "${outfile}")
set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${outfile}")
endif()
QT4_CREATE_MOC_COMMAND(${abs_infile} ${_outfile} "${moc_flags}" "")
if ("x${ARGV2}" STREQUAL "xTARGET")
set(moc_target ${ARGV3})
endif()
QT4_CREATE_MOC_COMMAND(${abs_infile} ${_outfile} "${moc_flags}" "" "${moc_target}")
set_source_files_properties(${outfile} PROPERTIES SKIP_AUTOMOC TRUE) # dont run automoc on this file
endmacro ()
@ -141,12 +165,12 @@ endmacro ()
macro (QT4_WRAP_CPP outfiles )
# get include dirs
QT4_GET_MOC_FLAGS(moc_flags)
QT4_EXTRACT_OPTIONS(moc_files moc_options ${ARGN})
QT4_EXTRACT_OPTIONS(moc_files moc_options moc_target ${ARGN})
foreach (it ${moc_files})
get_filename_component(it ${it} ABSOLUTE)
QT4_MAKE_OUTPUT_FILE(${it} moc_ cxx outfile)
QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}")
QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}" "${moc_target}")
set(${outfiles} ${${outfiles}} ${outfile})
endforeach()
@ -156,7 +180,7 @@ endmacro ()
# QT4_WRAP_UI(outfiles inputfile ... )
macro (QT4_WRAP_UI outfiles )
QT4_EXTRACT_OPTIONS(ui_files ui_options ${ARGN})
QT4_EXTRACT_OPTIONS(ui_files ui_options ui_target ${ARGN})
foreach (it ${ui_files})
get_filename_component(outfile ${it} NAME_WE)
@ -175,7 +199,7 @@ endmacro ()
# QT4_ADD_RESOURCES(outfiles inputfile ... )
macro (QT4_ADD_RESOURCES outfiles )
QT4_EXTRACT_OPTIONS(rcc_files rcc_options ${ARGN})
QT4_EXTRACT_OPTIONS(rcc_files rcc_options rcc_target ${ARGN})
foreach (it ${rcc_files})
get_filename_component(outfilename ${it} NAME_WE)
@ -270,7 +294,7 @@ endmacro()
macro(QT4_GENERATE_DBUS_INTERFACE _header) # _customName OPTIONS -some -options )
QT4_EXTRACT_OPTIONS(_customName _qt4_dbus_options ${ARGN})
QT4_EXTRACT_OPTIONS(_customName _qt4_dbus_options _qt4_dbus_target ${ARGN})
get_filename_component(_in_file ${_header} ABSOLUTE)
get_filename_component(_basename ${_header} NAME_WE)
@ -366,7 +390,7 @@ macro(QT4_AUTOMOC)
set(_header ${_abs_PATH}/${_basename}.h)
endif()
set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${_moc_INCS}" "")
QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${_moc_INCS}" "" "")
MACRO_ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc})
endforeach ()
endif()
@ -376,7 +400,7 @@ endmacro()
macro(QT4_CREATE_TRANSLATION _qm_files)
QT4_EXTRACT_OPTIONS(_lupdate_files _lupdate_options ${ARGN})
QT4_EXTRACT_OPTIONS(_lupdate_files _lupdate_options _lupdate_target ${ARGN})
set(_my_sources)
set(_my_dirs)
set(_my_tsfiles)
@ -451,14 +475,22 @@ function(qt4_use_modules _target _link_type)
endif()
foreach(_module ${modules})
string(TOUPPER ${_module} _ucmodule)
set(_targetPrefix QT_QT${_ucmodule})
if (_ucmodule STREQUAL QAXCONTAINER OR _ucmodule STREQUAL QAXSERVER)
if (NOT QT_Q${_ucmodule}_FOUND)
message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
endif()
set(_targetPrefix QT_Q${_ucmodule})
else()
if (NOT QT_QT${_ucmodule}_FOUND)
message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
endif()
if ("${_ucmodule}" STREQUAL "MAIN")
message(FATAL_ERROR "Can not use \"${_module}\" module with qt4_use_modules.")
endif()
target_link_libraries(${_target} ${link_type} ${QT_QT${_ucmodule}_LIBRARY})
set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${QT_QT${_ucmodule}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default)
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${QT_QT${_ucmodule}_COMPILE_DEFINITIONS})
endif()
target_link_libraries(${_target} ${link_type} ${${_targetPrefix}_LIBRARIES})
set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${${_targetPrefix}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default)
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${${_targetPrefix}_COMPILE_DEFINITIONS})
endforeach()
endfunction()

View File

@ -62,7 +62,7 @@ macro( select_library_configurations basename )
# if the generator supports configuration types or CMAKE_BUILD_TYPE
# is set, then set optimized and debug options.
if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
set( ${basename}_LIBRARY )
set( ${basename}_LIBRARY "" )
foreach( _libname IN LISTS ${basename}_LIBRARY_RELEASE )
list( APPEND ${basename}_LIBRARY optimized "${_libname}" )
endforeach()

View File

@ -132,10 +132,10 @@ macro(ECOS_ADJUST_DIRECTORY _target_FILES )
endmacro()
# the default ecos config file name
# maybe in the future also out-of-source builds may be possible
# maybe in future also out-of-source builds may be possible
set(ECOS_CONFIG_FILE ecos.ecc)
#creates the dependancy from all source files on the ecos target.ld,
#creates the dependency from all source files on the ecos target.ld,
#adds the command for compiling ecos
macro(ECOS_ADD_TARGET_LIB)
# when building out-of-source, create the ecos/ subdir

View File

@ -6,6 +6,10 @@
# add_jar(target_name
# [SOURCES] source1 [source2 ...] [resource1 ...]
# [INCLUDE_JARS jar1 [jar2 ...]]
# [ENTRY_POINT entry]
# [VERSION version]
# [OUTPUT_NAME name]
# [OUTPUT_DIR dir]
# )
#
# This command creates a <target_name>.jar. It compiles the given source files
@ -17,6 +21,9 @@
# listed as sources are ignored (as they have been since the first version of
# this module).
#
# The default OUTPUT_DIR can also be changed by setting the variable
# CMAKE_JAVA_TARGET_OUTPUT_DIR.
#
# Additional instructions:
# To add compile flags to the target you can set these flags with
# the following variable:
@ -30,32 +37,30 @@
#
# To use a different output name for the target you can set it with:
#
# set(CMAKE_JAVA_TARGET_OUTPUT_NAME shibboleet.jar)
# add_jar(foobar foobar.java)
# add_jar(foobar foobar.java OUTPUT_NAME shibboleet.jar)
#
# To use a different output directory than CMAKE_CURRENT_BINARY_DIR
# you can set it with:
#
# set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${PROJECT_BINARY_DIR}/bin)
# add_jar(foobar foobar.java OUTPUT_DIR ${PROJECT_BINARY_DIR}/bin)
#
# To define an entry point in your jar you can set it with:
# To define an entry point in your jar you can set it with the ENTRY_POINT
# named argument:
#
# set(CMAKE_JAVA_JAR_ENTRY_POINT com/examples/MyProject/Main)
# add_jar(example ENTRY_POINT com/examples/MyProject/Main)
#
# To add a VERSION to the target output name you can set it using
# CMAKE_JAVA_TARGET_VERSION. This will create a jar file with the name
# shibboleet-1.0.0.jar and will create a symlink shibboleet.jar
# the VERSION named argument to add_jar. This will create a jar file with the
# name shibboleet-1.0.0.jar and will create a symlink shibboleet.jar
# pointing to the jar with the version information.
#
# set(CMAKE_JAVA_TARGET_VERSION 1.2.0)
# add_jar(shibboleet shibbotleet.java)
# add_jar(shibboleet shibbotleet.java VERSION 1.2.0)
#
# If the target is a JNI library, utilize the following commands to
# create a JNI symbolic link:
#
# set(CMAKE_JNI_TARGET TRUE)
# set(CMAKE_JAVA_TARGET_VERSION 1.2.0)
# add_jar(shibboleet shibbotleet.java)
# add_jar(shibboleet shibbotleet.java VERSION 1.2.0)
# install_jar(shibboleet ${LIB_INSTALL_DIR}/shibboleet)
# install_jni_symlink(shibboleet ${JAVA_LIB_INSTALL_DIR})
#
@ -216,23 +221,50 @@ set(_JAVA_SYMLINK_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/UseJavaSymlinks.cmake)
function(add_jar _TARGET_NAME)
cmake_parse_arguments(_add_jar "" "" "SOURCES;INCLUDE_JARS" ${ARGN})
# In CMake < 2.8.12, add_jar used variables which were set prior to calling
# add_jar for customizing the behavior of add_jar. In order to be backwards
# compatible, check if any of those variables are set, and use them to
# initialize values of the named arguments. (Giving the corresponding named
# argument will override the value set here.)
#
# New features should use named arguments only.
if(DEFINED CMAKE_JAVA_TARGET_VERSION)
set(_add_jar_VERSION "${CMAKE_JAVA_TARGET_VERSION}")
endif()
if(DEFINED CMAKE_JAVA_TARGET_OUTPUT_DIR)
set(_add_jar_OUTPUT_DIR "${CMAKE_JAVA_TARGET_OUTPUT_DIR}")
endif()
if(DEFINED CMAKE_JAVA_TARGET_OUTPUT_NAME)
set(_add_jar_OUTPUT_NAME "${CMAKE_JAVA_TARGET_OUTPUT_NAME}")
# reset
set(CMAKE_JAVA_TARGET_OUTPUT_NAME)
endif()
if(DEFINED CMAKE_JAVA_JAR_ENTRY_POINT)
set(_add_jar_ENTRY_POINT "${CMAKE_JAVA_JAR_ENTRY_POINT}")
endif()
cmake_parse_arguments(_add_jar
""
"VERSION;OUTPUT_DIR;OUTPUT_NAME;ENTRY_POINT"
"SOURCES;INCLUDE_JARS"
${ARGN}
)
set(_JAVA_SOURCE_FILES ${_add_jar_SOURCES} ${_add_jar_UNPARSED_ARGUMENTS})
if (NOT DEFINED CMAKE_JAVA_TARGET_OUTPUT_DIR)
set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
if (NOT DEFINED _add_jar_OUTPUT_DIR)
set(_add_jar_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
endif()
if (CMAKE_JAVA_JAR_ENTRY_POINT)
if (_add_jar_ENTRY_POINT)
set(_ENTRY_POINT_OPTION e)
set(_ENTRY_POINT_VALUE ${CMAKE_JAVA_JAR_ENTRY_POINT})
set(_ENTRY_POINT_VALUE ${_add_jar_ENTRY_POINT})
endif ()
if (LIBRARY_OUTPUT_PATH)
set(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH})
else ()
set(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${CMAKE_JAVA_TARGET_OUTPUT_DIR})
set(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${_add_jar_OUTPUT_DIR})
endif ()
set(CMAKE_JAVA_INCLUDE_PATH
@ -242,7 +274,7 @@ function(add_jar _TARGET_NAME)
${CMAKE_JAVA_LIBRARY_OUTPUT_PATH}
)
if (WIN32 AND NOT CYGWIN)
if (WIN32 AND NOT CYGWIN AND CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
set(CMAKE_JAVA_INCLUDE_FLAG_SEP ";")
else ()
set(CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
@ -252,20 +284,18 @@ function(add_jar _TARGET_NAME)
set(CMAKE_JAVA_INCLUDE_PATH_FINAL "${CMAKE_JAVA_INCLUDE_PATH_FINAL}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${JAVA_INCLUDE_DIR}")
endforeach()
set(CMAKE_JAVA_CLASS_OUTPUT_PATH "${CMAKE_JAVA_TARGET_OUTPUT_DIR}${CMAKE_FILES_DIRECTORY}/${_TARGET_NAME}.dir")
set(CMAKE_JAVA_CLASS_OUTPUT_PATH "${_add_jar_OUTPUT_DIR}${CMAKE_FILES_DIRECTORY}/${_TARGET_NAME}.dir")
set(_JAVA_TARGET_OUTPUT_NAME "${_TARGET_NAME}.jar")
if (CMAKE_JAVA_TARGET_OUTPUT_NAME AND CMAKE_JAVA_TARGET_VERSION)
set(_JAVA_TARGET_OUTPUT_NAME "${CMAKE_JAVA_TARGET_OUTPUT_NAME}-${CMAKE_JAVA_TARGET_VERSION}.jar")
set(_JAVA_TARGET_OUTPUT_LINK "${CMAKE_JAVA_TARGET_OUTPUT_NAME}.jar")
elseif (CMAKE_JAVA_TARGET_VERSION)
set(_JAVA_TARGET_OUTPUT_NAME "${_TARGET_NAME}-${CMAKE_JAVA_TARGET_VERSION}.jar")
if (_add_jar_OUTPUT_NAME AND _add_jar_VERSION)
set(_JAVA_TARGET_OUTPUT_NAME "${_add_jar_OUTPUT_NAME}-${_add_jar_VERSION}.jar")
set(_JAVA_TARGET_OUTPUT_LINK "${_add_jar_OUTPUT_NAME}.jar")
elseif (_add_jar_VERSION)
set(_JAVA_TARGET_OUTPUT_NAME "${_TARGET_NAME}-${_add_jar_VERSION}.jar")
set(_JAVA_TARGET_OUTPUT_LINK "${_TARGET_NAME}.jar")
elseif (CMAKE_JAVA_TARGET_OUTPUT_NAME)
set(_JAVA_TARGET_OUTPUT_NAME "${CMAKE_JAVA_TARGET_OUTPUT_NAME}.jar")
elseif (_add_jar_OUTPUT_NAME)
set(_JAVA_TARGET_OUTPUT_NAME "${_add_jar_OUTPUT_NAME}.jar")
endif ()
# reset
set(CMAKE_JAVA_TARGET_OUTPUT_NAME)
set(_JAVA_CLASS_FILES)
set(_JAVA_COMPILE_FILES)
@ -279,7 +309,7 @@ function(add_jar _TARGET_NAME)
get_filename_component(_JAVA_FULL ${_JAVA_SOURCE_FILE} ABSOLUTE)
if (_JAVA_EXT MATCHES ".java")
file(RELATIVE_PATH _JAVA_REL_BINARY_PATH ${CMAKE_JAVA_TARGET_OUTPUT_DIR} ${_JAVA_FULL})
file(RELATIVE_PATH _JAVA_REL_BINARY_PATH ${_add_jar_OUTPUT_DIR} ${_JAVA_FULL})
file(RELATIVE_PATH _JAVA_REL_SOURCE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${_JAVA_FULL})
string(LENGTH ${_JAVA_REL_BINARY_PATH} _BIN_LEN)
string(LENGTH ${_JAVA_REL_SOURCE_PATH} _SRC_LEN)
@ -364,7 +394,7 @@ function(add_jar _TARGET_NAME)
# create the jar file
set(_JAVA_JAR_OUTPUT_PATH
${CMAKE_JAVA_TARGET_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_NAME})
${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_NAME})
if (CMAKE_JNI_TARGET)
add_custom_command(
OUTPUT ${_JAVA_JAR_OUTPUT_PATH}
@ -372,12 +402,12 @@ function(add_jar _TARGET_NAME)
-cf${_ENTRY_POINT_OPTION} ${_JAVA_JAR_OUTPUT_PATH} ${_ENTRY_POINT_VALUE}
${_JAVA_RESOURCE_FILES} @java_class_filelist
COMMAND ${CMAKE_COMMAND}
-D_JAVA_TARGET_DIR=${CMAKE_JAVA_TARGET_OUTPUT_DIR}
-D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
-D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_TARGET_OUTPUT_NAME}
-D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
-P ${_JAVA_SYMLINK_SCRIPT}
COMMAND ${CMAKE_COMMAND}
-D_JAVA_TARGET_DIR=${CMAKE_JAVA_TARGET_OUTPUT_DIR}
-D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
-D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_JAR_OUTPUT_PATH}
-D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
-P ${_JAVA_SYMLINK_SCRIPT}
@ -392,7 +422,7 @@ function(add_jar _TARGET_NAME)
-cf${_ENTRY_POINT_OPTION} ${_JAVA_JAR_OUTPUT_PATH} ${_ENTRY_POINT_VALUE}
${_JAVA_RESOURCE_FILES} @java_class_filelist
COMMAND ${CMAKE_COMMAND}
-D_JAVA_TARGET_DIR=${CMAKE_JAVA_TARGET_OUTPUT_DIR}
-D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
-D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_TARGET_OUTPUT_NAME}
-D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
-P ${_JAVA_SYMLINK_SCRIPT}
@ -420,7 +450,7 @@ function(add_jar _TARGET_NAME)
PROPERTY
INSTALL_FILES
${_JAVA_JAR_OUTPUT_PATH}
${CMAKE_JAVA_TARGET_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_LINK}
${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_LINK}
)
if (CMAKE_JNI_TARGET)
@ -429,7 +459,7 @@ function(add_jar _TARGET_NAME)
${_TARGET_NAME}
PROPERTY
JNI_SYMLINK
${CMAKE_JAVA_TARGET_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_LINK}
${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_LINK}
)
endif ()
endif ()

View File

@ -11,7 +11,11 @@
#=============================================================================
include(CheckIncludeFile)
# Check if we can build support for ELF parsing.
CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H)
if(CMAKE_CXX_PLATFORM_ID MATCHES "OpenBSD")
CHECK_INCLUDE_FILES("stdint.h;elf_abi.h" HAVE_ELF_H)
else()
CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H)
endif()
if(HAVE_ELF_H)
set(CMAKE_USE_ELF_PARSER 1)
else()
@ -113,7 +117,8 @@ endif()
set(SRCS
cmStandardIncludes.cxx
cmArchiveWrite.cxx
cmBootstrapCommands.cxx
cmBootstrapCommands1.cxx
cmBootstrapCommands2.cxx
cmCacheManager.cxx
cmCacheManager.h
cmCommands.cxx
@ -359,6 +364,10 @@ if (WIN32)
cmLocalVisualStudio7Generator.h
cmLocalVisualStudioGenerator.cxx
cmLocalVisualStudioGenerator.h
cmVisualStudioSlnData.h
cmVisualStudioSlnData.cxx
cmVisualStudioSlnParser.h
cmVisualStudioSlnParser.cxx
cmVisualStudioWCEPlatformParser.h
cmVisualStudioWCEPlatformParser.cxx
cmWin32ProcessExecution.cxx
@ -539,7 +548,8 @@ endif()
add_executable(cmake cmakemain.cxx)
target_link_libraries(cmake CMakeLib)
# Build special executable for running programs on Windows 98
# Build special executable for running programs on Windows 98.
# Included on any Windows (unconditional packaging required!).
if(WIN32)
if(NOT UNIX)
add_executable(cmw9xcom cmw9xcom.cxx)

View File

@ -1,6 +1,6 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 2)
set(CMake_VERSION_MINOR 8)
set(CMake_VERSION_PATCH 10)
set(CMake_VERSION_TWEAK 20130515)
set(CMake_VERSION_PATCH 11)
set(CMake_VERSION_TWEAK 20130628)
#set(CMake_VERSION_RC 1)

View File

@ -60,7 +60,7 @@ void cmCPackDocumentVariables::DefineVariables(cmake* cm)
"It is usually invoked like this:\n"
" make DESTDIR=/home/john install\n"
"which will install the concerned software using the"
" installation prefix, e.g. \"/usr/local\" pre-pended with "
" installation prefix, e.g. \"/usr/local\" prepended with "
"the DESTDIR value which finally gives \"/home/john/usr/local\"."
" When preparing a package, CPack first installs the items to be "
"packaged in a local (to the build tree) directory by using the "

View File

@ -638,7 +638,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
= this->MakefileMap->GetDefinition("CMAKE_MAKE_PROGRAM");
std::string buildCommand
= globalGenerator->GenerateBuildCommand(cmakeMakeProgram,
installProjectName.c_str(), 0,
installProjectName.c_str(), 0, 0,
globalGenerator->GetPreinstallTargetName(),
buildConfig, false, false);
cmCPackLogger(cmCPackLog::LOG_DEBUG,

View File

@ -130,10 +130,11 @@ cmCTestGenericHandler* cmCTestBuildCommand::InitializeHandler()
cmakeBuildConfiguration = config;
}
std::string dir = this->CTest->GetCTestConfiguration("BuildDirectory");
std::string buildCommand
= this->GlobalGenerator->
GenerateBuildCommand(cmakeMakeProgram,
cmakeProjectName,
cmakeProjectName, dir.c_str(),
cmakeBuildAdditionalFlags, cmakeBuildTarget,
cmakeBuildConfiguration, true, false);
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,

View File

@ -31,32 +31,6 @@ cmCTestGenericHandler* cmCTestConfigureCommand::InitializeHandler()
cmSystemTools::ExpandListArgument(this->Values[ctc_OPTIONS], options);
}
if ( this->Values[ct_BUILD] )
{
this->CTest->SetCTestConfiguration("BuildDirectory",
cmSystemTools::CollapseFullPath(
this->Values[ct_BUILD]).c_str());
}
else
{
this->CTest->SetCTestConfiguration("BuildDirectory",
cmSystemTools::CollapseFullPath(
this->Makefile->GetSafeDefinition("CTEST_BINARY_DIRECTORY")).c_str());
}
if ( this->Values[ct_SOURCE] )
{
this->CTest->SetCTestConfiguration("SourceDirectory",
cmSystemTools::CollapseFullPath(
this->Values[ct_SOURCE]).c_str());
}
else
{
this->CTest->SetCTestConfiguration("SourceDirectory",
cmSystemTools::CollapseFullPath(
this->Makefile->GetSafeDefinition("CTEST_SOURCE_DIRECTORY")).c_str());
}
if ( this->CTest->GetCTestConfiguration("BuildDirectory").empty() )
{
this->SetError("Build directory not specified. Either use BUILD "

View File

@ -70,19 +70,6 @@ bool cmCTestHandlerCommand
this->CTest->SetConfigType(ctestConfigType);
}
cmCTestLog(this->CTest, DEBUG, "Initialize handler" << std::endl;);
cmCTestGenericHandler* handler = this->InitializeHandler();
if ( !handler )
{
cmCTestLog(this->CTest, ERROR_MESSAGE,
"Cannot instantiate test handler " << this->GetName()
<< std::endl);
return false;
}
handler->SetAppendXML(this->AppendXML);
handler->PopulateCustomVectors(this->Makefile);
if ( this->Values[ct_BUILD] )
{
this->CTest->SetCTestConfiguration("BuildDirectory",
@ -119,6 +106,20 @@ bool cmCTestHandlerCommand
cmSystemTools::CollapseFullPath(
this->Makefile->GetSafeDefinition("CTEST_SOURCE_DIRECTORY")).c_str());
}
cmCTestLog(this->CTest, DEBUG, "Initialize handler" << std::endl;);
cmCTestGenericHandler* handler = this->InitializeHandler();
if ( !handler )
{
cmCTestLog(this->CTest, ERROR_MESSAGE,
"Cannot instantiate test handler " << this->GetName()
<< std::endl);
return false;
}
handler->SetAppendXML(this->AppendXML);
handler->PopulateCustomVectors(this->Makefile);
if ( this->Values[ct_SUBMIT_INDEX] )
{
if(!this->CTest->GetDropSiteCDash() && this->CTest->GetDartVersion() <= 1)

View File

@ -43,8 +43,7 @@ static CatToErrorType cmCTestMemCheckBoundsChecker[] = {
{0,0}
};
// parse the xml file storing the installed version of Xcode on
// the machine
// parse the xml file containing the results of last BoundsChecker run
class cmBoundsCheckerParser : public cmXMLParser
{
public:
@ -461,13 +460,6 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
return false;
}
if ( this->MemoryTester[0] == '\"' &&
this->MemoryTester[this->MemoryTester.size()-1] == '\"' )
{
this->MemoryTester
= this->MemoryTester.substr(1, this->MemoryTester.size()-2);
}
// Setup the options
std::string memoryTesterOptions;
if ( this->CTest->GetCTestConfiguration(
@ -491,13 +483,13 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
switch ( this->MemoryTesterStyle )
{
case cmCTestMemCheckHandler::VALGRIND:
{
if ( this->MemoryTesterOptions.empty() )
{
this->MemoryTesterOptions.push_back("-q");
this->MemoryTesterOptions.push_back("--tool=memcheck");
this->MemoryTesterOptions.push_back("--leak-check=yes");
this->MemoryTesterOptions.push_back("--show-reachable=yes");
this->MemoryTesterOptions.push_back("--workaround-gcc296-bugs=yes");
this->MemoryTesterOptions.push_back("--num-callers=50");
}
if ( this->CTest->GetCTestConfiguration(
@ -516,7 +508,11 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
+ this->CTest->GetCTestConfiguration("MemoryCheckSuppressionFile");
this->MemoryTesterOptions.push_back(suppressions);
}
std::string outputFile = "--log-file="
+ this->MemoryTesterOutputFile;
this->MemoryTesterOptions.push_back(outputFile);
break;
}
case cmCTestMemCheckHandler::PURIFY:
{
std::string outputFile;
@ -948,6 +944,21 @@ cmCTestMemCheckHandler::PostProcessPurifyTest(cmCTestTestResult& res)
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
"PostProcessPurifyTest for : "
<< res.Name.c_str() << std::endl);
appendMemTesterOutput(res);
}
void
cmCTestMemCheckHandler::PostProcessValgrindTest(cmCTestTestResult& res)
{
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
"PostProcessValgrindTest for : "
<< res.Name.c_str() << std::endl);
appendMemTesterOutput(res);
}
void
cmCTestMemCheckHandler::appendMemTesterOutput(cmCTestTestResult& res)
{
if ( !cmSystemTools::FileExists(this->MemoryTesterOutputFile.c_str()) )
{
std::string log = "Cannot find memory tester output file: "

View File

@ -119,6 +119,10 @@ private:
void PostProcessPurifyTest(cmCTestTestResult& res);
void PostProcessBoundsCheckerTest(cmCTestTestResult& res);
void PostProcessValgrindTest(cmCTestTestResult& res);
///! append MemoryTesterOutputFile to the test log
void appendMemTesterOutput(cmCTestTestHandler::cmCTestTestResult& res);
};
#endif

View File

@ -166,6 +166,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
{
found = true;
reason = "Required regular expression found.";
break;
}
}
if ( !found )
@ -196,6 +197,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
reason += passIt->second;
reason += "]";
forceFail = true;
break;
}
}
}
@ -384,13 +386,19 @@ void cmCTestRunTest::MemCheckPostProcess()
<< this->TestResult.Name.c_str() << std::endl);
cmCTestMemCheckHandler * handler = static_cast<cmCTestMemCheckHandler*>
(this->TestHandler);
if(handler->MemoryTesterStyle == cmCTestMemCheckHandler::BOUNDS_CHECKER)
{
handler->PostProcessBoundsCheckerTest(this->TestResult);
}
else if(handler->MemoryTesterStyle == cmCTestMemCheckHandler::PURIFY)
switch ( handler->MemoryTesterStyle )
{
case cmCTestMemCheckHandler::VALGRIND:
handler->PostProcessValgrindTest(this->TestResult);
break;
case cmCTestMemCheckHandler::PURIFY:
handler->PostProcessPurifyTest(this->TestResult);
break;
case cmCTestMemCheckHandler::BOUNDS_CHECKER:
handler->PostProcessBoundsCheckerTest(this->TestResult);
break;
default:
break;
}
}

View File

@ -82,7 +82,6 @@ bool cmCTestSubdirCommand
std::string cwd = cmSystemTools::GetCurrentWorkingDirectory();
for ( it = args.begin(); it != args.end(); ++ it )
{
cmSystemTools::ChangeDirectory(cwd.c_str());
std::string fname;
if(cmSystemTools::FileIsFullPath(it->c_str()))
@ -116,7 +115,6 @@ bool cmCTestSubdirCommand
else
{
// No CTestTestfile? Who cares...
cmSystemTools::ChangeDirectory(cwd.c_str());
continue;
}
fname += "/";
@ -133,6 +131,7 @@ bool cmCTestSubdirCommand
return false;
}
}
cmSystemTools::ChangeDirectory(cwd.c_str());
return true;
}
@ -1363,7 +1362,7 @@ void cmCTestTestHandler
tempPath += filename;
attempted.push_back(tempPath);
attemptedConfigs.push_back(ctest->GetConfigType());
// If the file is an OSX bundle then the configtyp
// If the file is an OSX bundle then the configtype
// will be at the start of the path
tempPath = ctest->GetConfigType();
tempPath += "/";
@ -1374,7 +1373,7 @@ void cmCTestTestHandler
}
else
{
// no config specified to try some options
// no config specified - try some options...
tempPath = filepath;
tempPath += "Release/";
tempPath += filename;

View File

@ -175,6 +175,14 @@ int cmProcess::GetNextOutputLine(std::string& line, double timeout)
// Record exit information.
this->ExitValue = cmsysProcess_GetExitValue(this->Process);
this->TotalTime = cmSystemTools::GetTime() - this->StartTime;
// Because of a processor clock scew the runtime may become slightly
// negative. If someone changed the system clock while the process was
// running this may be even more. Make sure not to report a negative
// duration here.
if (this->TotalTime <= 0.0)
{
this->TotalTime = 0.0;
}
// std::cerr << "Time to run: " << this->TotalTime << "\n";
return cmsysProcess_Pipe_None;
}

View File

@ -176,7 +176,7 @@ static int FE_Delete_Previous(FORM *);
#define Address_Of_Current_Position_In_Buffer(form) \
Address_Of_Current_Position_In_Nth_Buffer(form,0)
/* Logic to decide wether or not a field is actually a field with
/* Logic to decide whether or not a field is actually a field with
vertical or horizontal scrolling */
#define Is_Scroll_Field(field) \
(((field)->drows > (field)->rows) || \
@ -2100,7 +2100,7 @@ static int Insert_String(FORM *form, int row, char *txt, int len)
| the wrapping.
|
| Return Values : E_OK - no wrapping required or wrapping
| was successfull
| was successful
| E_REQUEST_DENIED -
| E_SYSTEM_ERROR - some system error
+--------------------------------------------------------------------------*/
@ -3825,7 +3825,7 @@ int set_field_buffer(FIELD * field, int buffer, const char * value)
(int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols))))
RETURN(E_SYSTEM_ERROR);
/* in this case we also have to check, wether or not the remaining
/* in this case we also have to check, whether or not the remaining
characters in value are also printable for buffer 0. */
if (buffer==0)
{

View File

@ -101,7 +101,7 @@ static void Free_Enum_Type(void * argp)
| const unsigned char * buf,
| bool ccase )
|
| Description : Check wether or not the text in 'buf' matches the
| Description : Check whether or not the text in 'buf' matches the
| text in 's', at least partial.
|
| Return Values : NOMATCH - buffer doesn't match

View File

@ -28,6 +28,7 @@
#include <QShortcut>
#include <QKeySequence>
#include <QMacInstallDialog.h>
#include <QInputDialog>
#include "QCMake.h"
#include "QCMakeCacheView.h"
@ -122,6 +123,22 @@ CMakeSetupDialog::CMakeSetupDialog()
QObject::connect(this->InstallForCommandLineAction, SIGNAL(triggered(bool)),
this, SLOT(doInstallForCommandLine()));
#endif
ToolsMenu->addSeparator();
ToolsMenu->addAction(tr("&Find in Output..."),
this, SLOT(doOutputFindDialog()),
QKeySequence::Find);
ToolsMenu->addAction(tr("Find Next"),
this, SLOT(doOutputFindNext()),
QKeySequence::FindNext);
ToolsMenu->addAction(tr("Find Previous"),
this, SLOT(doOutputFindPrev()),
QKeySequence::FindPrevious);
ToolsMenu->addAction(tr("Goto Next Error"),
this, SLOT(doOutputErrorNext()),
QKeySequence(Qt::Key_F8)); // in Visual Studio
new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Period),
this, SLOT(doOutputErrorNext())); // in Eclipse
QMenu* OptionsMenu = this->menuBar()->addMenu(tr("&Options"));
this->SuppressDevWarningsAction =
OptionsMenu->addAction(tr("&Suppress dev Warnings (-Wno-dev)"));
@ -154,10 +171,6 @@ CMakeSetupDialog::CMakeSetupDialog()
QObject::connect(a, SIGNAL(triggered(bool)),
this, SLOT(doHelp()));
QShortcut* filterShortcut = new QShortcut(QKeySequence::Find, this);
QObject::connect(filterShortcut, SIGNAL(activated()),
this, SLOT(startSearch()));
this->setAcceptDrops(true);
// get the saved binary directories
@ -172,6 +185,10 @@ CMakeSetupDialog::CMakeSetupDialog()
this->Output->setFont(outputFont);
this->ErrorFormat.setForeground(QBrush(Qt::red));
this->Output->setContextMenuPolicy(Qt::CustomContextMenu);
connect(this->Output, SIGNAL(customContextMenuRequested(const QPoint&)),
this, SLOT(doOutputContextMenu(const QPoint &)));
// start the cmake worker thread
this->CMakeThread = new QCMakeThread(this);
QObject::connect(this->CMakeThread, SIGNAL(cmakeInitialized()),
@ -637,7 +654,13 @@ void CMakeSetupDialog::showProgress(const QString& /*msg*/, float percent)
void CMakeSetupDialog::error(const QString& msg)
{
this->Output->setCurrentCharFormat(this->ErrorFormat);
this->Output->append(msg);
//QTextEdit will terminate the msg with a ParagraphSeparator, but it also replaces
//all newlines with ParagraphSeparators. By replacing the newlines by ourself, one
//error msg will be one paragraph.
QString paragraph(msg);
paragraph.replace(QLatin1Char('\n'), QChar::LineSeparator);
this->Output->append(paragraph);
}
void CMakeSetupDialog::message(const QString& msg)
@ -1149,4 +1172,134 @@ void CMakeSetupDialog::setSearchFilter(const QString& str)
this->CacheValues->setSearchFilter(str);
}
void CMakeSetupDialog::doOutputContextMenu(const QPoint &pt)
{
QMenu *menu = this->Output->createStandardContextMenu();
menu->addSeparator();
menu->addAction(tr("Find..."),
this, SLOT(doOutputFindDialog()), QKeySequence::Find);
menu->addAction(tr("Find Next"),
this, SLOT(doOutputFindNext()), QKeySequence::FindNext);
menu->addAction(tr("Find Previous"),
this, SLOT(doOutputFindPrev()), QKeySequence::FindPrevious);
menu->addSeparator();
menu->addAction(tr("Goto Next Error"),
this, SLOT(doOutputErrorNext()), QKeySequence(Qt::Key_F8));
menu->exec(this->Output->mapToGlobal(pt));
delete menu;
}
void CMakeSetupDialog::doOutputFindDialog()
{
QStringList strings(this->FindHistory);
QString selection = this->Output->textCursor().selectedText();
if (!selection.isEmpty() &&
!selection.contains(QChar::ParagraphSeparator) &&
!selection.contains(QChar::LineSeparator))
{
strings.push_front(selection);
}
bool ok;
QString search = QInputDialog::getItem(this, tr("Find in Output"),
tr("Find:"), strings, 0, true, &ok);
if (ok && !search.isEmpty())
{
if (!this->FindHistory.contains(search))
{
this->FindHistory.push_front(search);
}
doOutputFindNext();
}
}
void CMakeSetupDialog::doOutputFindPrev()
{
doOutputFindNext(false);
}
void CMakeSetupDialog::doOutputFindNext(bool directionForward)
{
if (this->FindHistory.isEmpty())
{
doOutputFindDialog(); //will re-call this function again
return;
}
QString search = this->FindHistory.front();
QTextCursor cursor = this->Output->textCursor();
QTextDocument* document = this->Output->document();
QTextDocument::FindFlags flags;
if (!directionForward)
{
flags |= QTextDocument::FindBackward;
}
cursor = document->find(search, cursor, flags);
if (cursor.isNull())
{
// first search found nothing, wrap around and search again
cursor = this->Output->textCursor();
cursor.movePosition(directionForward ? QTextCursor::Start
: QTextCursor::End);
cursor = document->find(search, cursor, flags);
}
if (cursor.hasSelection())
{
this->Output->setTextCursor(cursor);
}
}
void CMakeSetupDialog::doOutputErrorNext()
{
QTextCursor cursor = this->Output->textCursor();
bool atEnd = false;
// move cursor out of current error-block
if (cursor.blockCharFormat() == this->ErrorFormat)
{
atEnd = !cursor.movePosition(QTextCursor::NextBlock);
}
// move cursor to next error-block
while (cursor.blockCharFormat() != this->ErrorFormat && !atEnd)
{
atEnd = !cursor.movePosition(QTextCursor::NextBlock);
}
if (atEnd)
{
// first search found nothing, wrap around and search again
atEnd = !cursor.movePosition(QTextCursor::Start);
// move cursor to next error-block
while (cursor.blockCharFormat() != this->ErrorFormat && !atEnd)
{
atEnd = !cursor.movePosition(QTextCursor::NextBlock);
}
}
if (!atEnd)
{
cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
QTextCharFormat selectionFormat;
selectionFormat.setBackground(Qt::yellow);
QTextEdit::ExtraSelection extraSelection = {cursor, selectionFormat};
this->Output->setExtraSelections(QList<QTextEdit::ExtraSelection>()
<< extraSelection);
// make the whole error-block visible
this->Output->setTextCursor(cursor);
// remove the selection to see the extraSelection
cursor.setPosition(cursor.anchor());
this->Output->setTextCursor(cursor);
}
}

View File

@ -77,6 +77,11 @@ protected slots:
bool doConfigureInternal();
bool doGenerateInternal();
void exitLoop(int);
void doOutputContextMenu(const QPoint &);
void doOutputFindDialog();
void doOutputFindNext(bool directionForward = true);
void doOutputFindPrev();
void doOutputErrorNext();
protected:
@ -106,6 +111,7 @@ protected:
QTextCharFormat MessageFormat;
QStringList AddVariableCompletions;
QStringList FindHistory;
QEventLoop LocalLoop;

View File

@ -107,7 +107,10 @@
</sizepolicy>
</property>
<property name="text">
<string>Search:</string>
<string>S&amp;earch:</string>
</property>
<property name="buddy">
<cstring>Search</cstring>
</property>
</widget>
</item>

View File

@ -177,7 +177,7 @@ QModelIndex QCMakeCacheView::moveCursor(CursorAction act,
void QCMakeCacheView::setShowAdvanced(bool s)
{
#if QT_VERSION >= 040300
// new 4.3 api that needs to be called. what about an older Qt?
// new 4.3 API that needs to be called. what about an older Qt?
this->SearchFilter->invalidate();
#endif

View File

@ -0,0 +1,28 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2013 Stephen Kelly <steveire@gmail.com>
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include "cmAddCompileOptionsCommand.h"
bool cmAddCompileOptionsCommand
::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &)
{
if(args.size() < 1 )
{
return true;
}
for(std::vector<std::string>::const_iterator i = args.begin();
i != args.end(); ++i)
{
this->Makefile->AddCompileOption(i->c_str());
}
return true;
}

View File

@ -0,0 +1,72 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2013 Stephen Kelly <steveire@gmail.com>
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#ifndef cmAddCompileOptionsCommand_h
#define cmAddCompileOptionsCommand_h
#include "cmCommand.h"
#include "cmDocumentGeneratorExpressions.h"
class cmAddCompileOptionsCommand : public cmCommand
{
public:
/**
* This is a virtual constructor for the command.
*/
virtual cmCommand* Clone()
{
return new cmAddCompileOptionsCommand;
}
/**
* This is called when the command is first encountered in
* the CMakeLists.txt file.
*/
virtual bool InitialPass(std::vector<std::string> const& args,
cmExecutionStatus &status);
/**
* The name of the command as specified in CMakeList.txt.
*/
virtual const char* GetName() const {return "add_compile_options";}
/**
* Succinct documentation.
*/
virtual const char* GetTerseDocumentation() const
{
return "Adds options to the compilation of source files.";
}
/**
* More documentation.
*/
virtual const char* GetFullDocumentation() const
{
return
" add_compile_options(<option> ...)\n"
"Adds options to the compiler command line for sources in the "
"current directory and below. This command can be used to add any "
"options, but alternative commands exist to add preprocessor "
"definitions or include directories. "
"See documentation of the directory and target COMPILE_OPTIONS "
"properties for details. "
"Arguments to add_compile_options may use \"generator "
"expressions\" with the syntax \"$<...>\". "
CM_DOCUMENT_COMMAND_GENERATOR_EXPRESSIONS
CM_DOCUMENT_LANGUAGE_GENERATOR_EXPRESSIONS
;
}
cmTypeMacro(cmAddCompileOptionsCommand, cmCommand);
};
#endif

View File

@ -63,7 +63,7 @@ public:
"but it was originally intended to add preprocessor definitions. "
"Flags beginning in -D or /D that look like preprocessor definitions "
"are automatically added to the COMPILE_DEFINITIONS property for "
"the current directory. Definitions with non-trival values may be "
"the current directory. Definitions with non-trivial values may be "
"left in the set of flags instead of being converted for reasons of "
"backwards compatibility. See documentation of the directory, "
"target, and source file COMPILE_DEFINITIONS properties for details "
@ -73,8 +73,6 @@ public:
}
cmTypeMacro(cmAddDefinitionsCommand, cmCommand);
private:
bool ParseDefinition(std::string const& def);
};

View File

@ -61,7 +61,7 @@ public:
" add_subdirectory(source_dir [binary_dir] \n"
" [EXCLUDE_FROM_ALL])\n"
"Add a subdirectory to the build. The source_dir specifies the "
"directory in which the source CmakeLists.txt and code files are "
"directory in which the source CMakeLists.txt and code files are "
"located. If it is a relative "
"path it will be evaluated with respect to the current "
"directory (the typical usage), but it may also be an absolute path. "

View File

@ -0,0 +1,91 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
// This file is used to compile all the commands
// that CMake knows about at compile time.
// This is sort of a boot strapping approach since you would
// like to have CMake to build CMake.
#include "cmCommands.h"
#include "cmAddCustomCommandCommand.cxx"
#include "cmAddCustomTargetCommand.cxx"
#include "cmAddDefinitionsCommand.cxx"
#include "cmAddDependenciesCommand.cxx"
#include "cmAddExecutableCommand.cxx"
#include "cmAddLibraryCommand.cxx"
#include "cmAddSubDirectoryCommand.cxx"
#include "cmAddTestCommand.cxx"
#include "cmBreakCommand.cxx"
#include "cmBuildCommand.cxx"
#include "cmCMakeMinimumRequired.cxx"
#include "cmCMakePolicyCommand.cxx"
#include "cmCommandArgumentsHelper.cxx"
#include "cmConfigureFileCommand.cxx"
#include "cmCoreTryCompile.cxx"
#include "cmCreateTestSourceList.cxx"
#include "cmDefinePropertyCommand.cxx"
#include "cmElseCommand.cxx"
#include "cmEnableLanguageCommand.cxx"
#include "cmEnableTestingCommand.cxx"
#include "cmEndForEachCommand.cxx"
#include "cmEndFunctionCommand.cxx"
#include "cmEndIfCommand.cxx"
#include "cmEndMacroCommand.cxx"
#include "cmEndWhileCommand.cxx"
#include "cmExecProgramCommand.cxx"
#include "cmExecuteProcessCommand.cxx"
#include "cmExternalMakefileProjectGenerator.cxx"
#include "cmFindBase.cxx"
#include "cmFindCommon.cxx"
#include "cmFileCommand.cxx"
#include "cmFindFileCommand.cxx"
#include "cmFindLibraryCommand.cxx"
#include "cmFindPackageCommand.cxx"
#include "cmFindPathCommand.cxx"
#include "cmFindProgramCommand.cxx"
#include "cmForEachCommand.cxx"
#include "cmFunctionCommand.cxx"
void GetBootstrapCommands1(std::list<cmCommand*>& commands)
{
commands.push_back(new cmAddCustomCommandCommand);
commands.push_back(new cmAddCustomTargetCommand);
commands.push_back(new cmAddDefinitionsCommand);
commands.push_back(new cmAddDependenciesCommand);
commands.push_back(new cmAddExecutableCommand);
commands.push_back(new cmAddLibraryCommand);
commands.push_back(new cmAddSubDirectoryCommand);
commands.push_back(new cmAddTestCommand);
commands.push_back(new cmBreakCommand);
commands.push_back(new cmBuildCommand);
commands.push_back(new cmCMakeMinimumRequired);
commands.push_back(new cmCMakePolicyCommand);
commands.push_back(new cmConfigureFileCommand);
commands.push_back(new cmCreateTestSourceList);
commands.push_back(new cmDefinePropertyCommand);
commands.push_back(new cmElseCommand);
commands.push_back(new cmEnableLanguageCommand);
commands.push_back(new cmEnableTestingCommand);
commands.push_back(new cmEndForEachCommand);
commands.push_back(new cmEndFunctionCommand);
commands.push_back(new cmEndIfCommand);
commands.push_back(new cmEndMacroCommand);
commands.push_back(new cmEndWhileCommand);
commands.push_back(new cmExecProgramCommand);
commands.push_back(new cmExecuteProcessCommand);
commands.push_back(new cmFileCommand);
commands.push_back(new cmFindFileCommand);
commands.push_back(new cmFindLibraryCommand);
commands.push_back(new cmFindPackageCommand);
commands.push_back(new cmFindPathCommand);
commands.push_back(new cmFindProgramCommand);
commands.push_back(new cmForEachCommand);
commands.push_back(new cmFunctionCommand);
}

View File

@ -14,44 +14,7 @@
// This is sort of a boot strapping approach since you would
// like to have CMake to build CMake.
#include "cmCommands.h"
#include "cmAddCustomCommandCommand.cxx"
#include "cmAddCustomTargetCommand.cxx"
#include "cmAddDefinitionsCommand.cxx"
#include "cmAddDependenciesCommand.cxx"
#include "cmAddExecutableCommand.cxx"
#include "cmAddLibraryCommand.cxx"
#include "cmAddSubDirectoryCommand.cxx"
#include "cmAddTestCommand.cxx"
#include "cmBreakCommand.cxx"
#include "cmBuildCommand.cxx"
#include "cmCMakeMinimumRequired.cxx"
#include "cmCMakePolicyCommand.cxx"
#include "cmCommandArgumentsHelper.cxx"
#include "cmConfigureFileCommand.cxx"
#include "cmCoreTryCompile.cxx"
#include "cmCreateTestSourceList.cxx"
#include "cmDefinePropertyCommand.cxx"
#include "cmElseCommand.cxx"
#include "cmEnableLanguageCommand.cxx"
#include "cmEnableTestingCommand.cxx"
#include "cmEndForEachCommand.cxx"
#include "cmEndFunctionCommand.cxx"
#include "cmEndIfCommand.cxx"
#include "cmEndMacroCommand.cxx"
#include "cmEndWhileCommand.cxx"
#include "cmExecProgramCommand.cxx"
#include "cmExecuteProcessCommand.cxx"
#include "cmExternalMakefileProjectGenerator.cxx"
#include "cmFindBase.cxx"
#include "cmFindCommon.cxx"
#include "cmFileCommand.cxx"
#include "cmFindFileCommand.cxx"
#include "cmFindLibraryCommand.cxx"
#include "cmFindPackageCommand.cxx"
#include "cmFindPathCommand.cxx"
#include "cmFindProgramCommand.cxx"
#include "cmForEachCommand.cxx"
#include "cmFunctionCommand.cxx"
#include "cmGeneratorExpressionEvaluationFile.cxx"
#include "cmGetCMakePropertyCommand.cxx"
#include "cmGetDirectoryPropertyCommand.cxx"
#include "cmGetFilenameComponentCommand.cxx"
@ -95,41 +58,8 @@
#include "cmUnsetCommand.cxx"
#include "cmWhileCommand.cxx"
void GetBootstrapCommands(std::list<cmCommand*>& commands)
void GetBootstrapCommands2(std::list<cmCommand*>& commands)
{
commands.push_back(new cmAddCustomCommandCommand);
commands.push_back(new cmAddCustomTargetCommand);
commands.push_back(new cmAddDefinitionsCommand);
commands.push_back(new cmAddDependenciesCommand);
commands.push_back(new cmAddExecutableCommand);
commands.push_back(new cmAddLibraryCommand);
commands.push_back(new cmAddSubDirectoryCommand);
commands.push_back(new cmAddTestCommand);
commands.push_back(new cmBreakCommand);
commands.push_back(new cmBuildCommand);
commands.push_back(new cmCMakeMinimumRequired);
commands.push_back(new cmCMakePolicyCommand);
commands.push_back(new cmConfigureFileCommand);
commands.push_back(new cmCreateTestSourceList);
commands.push_back(new cmDefinePropertyCommand);
commands.push_back(new cmElseCommand);
commands.push_back(new cmEnableLanguageCommand);
commands.push_back(new cmEnableTestingCommand);
commands.push_back(new cmEndForEachCommand);
commands.push_back(new cmEndFunctionCommand);
commands.push_back(new cmEndIfCommand);
commands.push_back(new cmEndMacroCommand);
commands.push_back(new cmEndWhileCommand);
commands.push_back(new cmExecProgramCommand);
commands.push_back(new cmExecuteProcessCommand);
commands.push_back(new cmFileCommand);
commands.push_back(new cmFindFileCommand);
commands.push_back(new cmFindLibraryCommand);
commands.push_back(new cmFindPackageCommand);
commands.push_back(new cmFindPathCommand);
commands.push_back(new cmFindProgramCommand);
commands.push_back(new cmForEachCommand);
commands.push_back(new cmFunctionCommand);
commands.push_back(new cmGetCMakePropertyCommand);
commands.push_back(new cmGetDirectoryPropertyCommand);
commands.push_back(new cmGetFilenameComponentCommand);

View File

@ -122,7 +122,7 @@ bool cmBuildCommand
//
std::string makecommand = this->Makefile->GetLocalGenerator()
->GetGlobalGenerator()->GenerateBuildCommand
(makeprogram, project_name, 0, target, configuration, true, false);
(makeprogram, project_name, 0, 0, target, configuration, true, false);
this->Makefile->AddDefinition(variable, makecommand.c_str());
@ -153,7 +153,7 @@ bool cmBuildCommand
std::string makecommand = this->Makefile->GetLocalGenerator()
->GetGlobalGenerator()->GenerateBuildCommand
(makeprogram.c_str(), this->Makefile->GetProjectName(), 0,
(makeprogram.c_str(), this->Makefile->GetProjectName(), 0, 0,
0, configType.c_str(), true, false);
if(cacheValue)

View File

@ -0,0 +1,126 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2013 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include "cmCMakeHostSystemInformationCommand.h"
#include <cmsys/ios/sstream>
// cmCMakeHostSystemInformation
bool cmCMakeHostSystemInformationCommand
::InitialPass(std::vector<std::string> const &args, cmExecutionStatus &)
{
size_t current_index = 0;
if(args.size() < (current_index + 2) || args[current_index] != "RESULT")
{
this->SetError("missing RESULT specification.");
return false;
}
std::string variable = args[current_index + 1];
current_index += 2;
if(args.size() < (current_index + 2) || args[current_index] != "QUERY")
{
this->SetError("missing QUERY specification");
return false;
}
cmsys::SystemInformation info;
info.RunCPUCheck();
info.RunOSCheck();
info.RunMemoryCheck();
std::string result_list;
for(size_t i = current_index + 1; i < args.size(); ++i)
{
std::string key = args[i];
if(i != current_index + 1)
{
result_list += ";";
}
std::string value;
if(!this->GetValue(info, key, value)) return false;
result_list += value;
}
this->Makefile->AddDefinition(variable.c_str(), result_list.c_str());
return true;
}
bool cmCMakeHostSystemInformationCommand
::GetValue(cmsys::SystemInformation &info,
std::string const& key, std::string &value)
{
if(key == "NUMBER_OF_LOGICAL_CORES")
{
value = this->ValueToString(info.GetNumberOfLogicalCPU());
}
else if(key == "NUMBER_OF_PHYSICAL_CORES")
{
value = this->ValueToString(info.GetNumberOfPhysicalCPU());
}
else if(key == "HOSTNAME")
{
value = this->ValueToString(info.GetHostname());
}
else if(key == "FQDN")
{
value = this->ValueToString(info.GetFullyQualifiedDomainName());
}
else if(key == "TOTAL_VIRTUAL_MEMORY")
{
value = this->ValueToString(info.GetTotalVirtualMemory());
}
else if(key == "AVAILABLE_VIRTUAL_MEMORY")
{
value = this->ValueToString(info.GetAvailableVirtualMemory());
}
else if(key == "TOTAL_PHYSICAL_MEMORY")
{
value = this->ValueToString(info.GetTotalPhysicalMemory());
}
else if(key == "AVAILABLE_PHYSICAL_MEMORY")
{
value = this->ValueToString(info.GetAvailablePhysicalMemory());
}
else
{
std::string e = "does not recognize <key> " + key;
this->SetError(e.c_str());
return false;
}
return true;
}
std::string cmCMakeHostSystemInformationCommand
::ValueToString(size_t value) const
{
cmsys_ios::stringstream tmp;
tmp << value;
return tmp.str();
}
std::string cmCMakeHostSystemInformationCommand
::ValueToString(const char *value) const
{
std::string safe_string = value ? value : "";
return safe_string;
}
std::string cmCMakeHostSystemInformationCommand
::ValueToString(std::string const& value) const
{
return value;
}

Some files were not shown because too many files have changed in this diff Show More