Commit Graph

19803 Commits

Author SHA1 Message Date
Brad King 66cb3356f5 VS: Detect the compiler id and tool location
Configure a hand-generated Visual Studio project to build the compiler id
source file since we cannot run the compiler command-line tool directly.
Add a post-build command to print out the full path to the compiler tool.
Parse the full path to the compiler tool from the build output.
2012-08-22 16:35:54 -04:00
Brad King 89595d6bce VS10: Define CMAKE_VS_PLATFORM_TOOLSET variable
When the VS 10 generator selects a non-default PlatformToolset to
specify for MSBuild, report the selected name in this variable.
2012-08-22 16:35:46 -04:00
Brad King 965a69dcaa Xcode: Detect the compiler id and tool location
Configure a hand-generated Xcode project to build the compiler id source
file since we cannot run the compiler command-line tool directly.  Add a
post-build shell script phase to print out the compiler toolset build
setting.  Run xcodebuild to compile the identification binary.  Parse
the full path to the compiler tool from the xcodebuild output.
2012-08-22 15:14:33 -04:00
Brad King 9a9e1ee98d CMakeDetermineCompilerId: Prepare to detect IDE compiler id
Teach CMAKE_DETERMINE_COMPILER_ID to check for variable
CMAKE_${lang}_COMPILER_ID_TOOL after CMAKE_DETERMINE_COMPILER_ID_BUILD
to use as CMAKE_${lang}_COMPILER since it will not be known until after
the IDE runs.

In CMAKE_DETERMINE_COMPILER_ID_BUILD prepare a cascading "if" so we can
use a generator-specific method to compile the identification source
file.  Leave "if(0)" as a placeholder for now and put the direct
compiler invocation in "else()".  After running the compiler to build
the compiler identification source we file(GLOB) the list of output
files as candidates for extracting the compiler information.  An IDE may
create directories, so exclude exclude directories from this list.
2012-08-22 15:14:33 -04:00
Brad King b8b5c8342a Re-order C/C++/Fortran compiler determination logic
Re-organize CMakeDetermine(C|CXX|Fortran)Compiler.cmake to search for
the compiler command-line tool only under generators for which it makes
sense.  For the Visual Studio generators we do not expect to find the
compiler tool from the environment, nor would we use the result anyway.

Furthermore, set CMAKE_${lang}_COMPILER_ID_TEST_FLAGS only when it has a
chance to be used.  Extract _CMAKE_TOOLCHAIN_LOCATION from the compiler
path after running the compiler id step so in the future that step can
help find the path to the compiler.
2012-08-22 15:14:33 -04:00
Patrick Gansterer 2c7a451de0 VS: Cleanup AddPlatformDefinitions() of Visual Studio generators
Move adding of definitions into cmGlobalVisualStudioGenerator to
share code and avoid duplicate architecture string literals.
2012-08-22 15:08:40 -04:00
Brad King e9bc502fb8 Detect Analog VisualDSP++ compiler version with its id
Decode hex digits from __VISUALDSPVERSION__ to compute the version
number components.  Note that the constant encodes decimal digits as hex
digits (never larger than 9).  We represent them as decimal after
extraction.  See documentation at:

  http://download.analog.com/dsp/tools/VisualDSP_45_Update_6_Release_Note_v4.pdf
  http://www.analog.com/static/imported-files/software_manuals/50_asm_man.rev3.1.pdf

Note that __VISUALDSPVERSION__ was introduced in version 4.5.6.
2012-08-22 11:48:07 -04:00
Brad King cca386b0a0 Detect Cray compiler version with its id
Decode decimal digits from

  _RELEASE
  _RELEASE_MINOR

to compute version number components.  See documentation at:

  http://docs.cray.com/books/S-2179-52/html-S-2179-52/zfixed5fvzxnxo.html
  http://sourceforge.net/p/predef/wiki/Compilers/#cray-c
2012-08-22 11:31:33 -04:00
Brad King 9b2dda5db5 VS11: Generate flag tables from MSBuild V110 tool files
Run cmparseMSBuildXML.py on cl.xml, lib.xml, and link.xml to generate
our flag tables:

 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V110/1033/cl.xml" > cmVS11CLFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V110/1033/lib.xml" > cmVS11LibFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V110/1033/link.xml" > cmVS11LinkFlagTable.h

Fix up the declaration names at the top of each file.  Finally, teach
cmVisualStudio10TargetGenerator to select the version of the table
matching the version of VS.
2012-08-22 11:12:32 -04:00
Zack Galbreath 4cb99b1dbc cmparseMSBuildXML: Include DisplayName in the output 2012-08-22 10:45:10 -04:00
Brad King 622d9a789d Detect SDCC compiler version with its id
Decode decimal digits from SDCC to compute version number components.
See documentation at:

  http://sdcc.sourceforge.net/doc/sdccman.pdf
  http://sourceforge.net/p/predef/wiki/Compilers/#small-device-c-compilerhttpenwikipediaorgwikismall_device_c_compiler
2012-08-22 10:27:09 -04:00
Brad King 4ad7fa6488 Detect Comeau compiler version with its id
Decode decimal digits from __COMO_VERSION__ to compute the version
number components.  See documentation at:

  http://www.comeaucomputing.com/4.0/docs/userman/predefs.html
  http://sourceforge.net/p/predef/wiki/Compilers/#comeau-chttpenwikipediaorgwikicomeau_cc2b2b
2012-08-22 10:17:01 -04:00
Brad King 952651c642 Detect TI compiler version with its id
Decode decimal digits from __TI_COMPILER_VERSION__ to compute version
number components.  See documentation at:

  http://processors.wiki.ti.com/index.php/Refer_to_Compiler_Version_in_Your_Source
  http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=spru187o
  http://sourceforge.net/p/predef/wiki/Compilers/#texas-instruments-cc-compiler
2012-08-22 10:17:01 -04:00
Brad King 74c57d99b4 Detect PathScale compiler version with its id
Decode decimal digits from

  __PATHCC__
  __PATHCC_MINOR__
  __PATHCC_PATCHLEVEL__

to compute version number components.  See documentation at:

  http://www.pathscale.com/docs/UserGuide.pdf
  http://sourceforge.net/p/predef/wiki/Compilers/#ekopathhttpenwikipediaorgwikipathscale
2012-08-22 10:17:01 -04:00
Brad King 707aefd853 Detect Compaq compiler version with its id
Decode decimal digits from __DECC_VER and __DECCXX_VER to compute
version number components.  See documentation at:

  http://www.openvms.compaq.com/commercial/c/docs/5492p024.html#decc_ver_sec
  http://www.tru64unix.compaq.com/cplus/ugu_impl.html#predef_vernum
  http://sourceforge.net/p/predef/wiki/Compilers/#compaq-cchttpwwwopenvmscompaqcomopenvmsbrochuresdeccplus
2012-08-22 10:17:01 -04:00
Brad King f0ae381c73 VS: Disable precompiled headers unless enabled by project (#12930)
In VS 11 the WindowsAppContainer element enabled by the
VS_WINRT_EXTENSIONS property activates precompiled header support
automatically if no PrecompiledHeader setting is specified.  For VS 10 and
11 set PrecompiledHeader to "NotUsing" explicitly by default unless
overridden by a project-specified flag.

Suggested-by: Eugene Golushkov <eugene_gff@ukr.net>
2012-08-22 08:57:10 -04:00
Brad King 3553001bcc Qt4Macros: Fix recently broken resource file parsing
Commit 4be67837 (read less from version headers into variables,
2012-08-19) switched from file(READ) and string(REGEX MATCHALL) to just
file(STRINGS) to extract the list of resource <file> entries.  However,
the latter extracts entire lines that match the regex, not just the part
that matches the regex, so the subsequent string(REGEX REPLACE) fails to
match and replace anything.  Return to the original parsing logic but
replace file(READ) with file(STRINGS) to load a minimal part of the file
before using string(REGEX MATCHALL) as before.
2012-08-22 08:37:27 -04:00
Peter Kümmel 709fa59562 Ninja: remove GetTargetPDB because it is used only once 2012-08-22 14:11:30 +02:00
Stephen Kelly f0a1065393 Rename files from main.cpp to more meaningful names.
Because the main file for the dummy-executable and the actual compile
test were both called main.cpp, they were overwriting each other during
in-source builds.
2012-08-22 13:05:07 +02:00
Stephen Kelly 25a4f56754 Build with Qt5 if it is found. 2012-08-22 12:58:43 +02:00
Peter Kümmel 4bb4787780 Ninja:split out setting of msvc TARGET_PDB 2012-08-22 12:37:55 +02:00
Peter Kümmel 59cbc28b92 Ninja: prepare msvc pdb cleanup 2012-08-22 12:26:56 +02:00
Kitware Robot c478d55e31 CMake Nightly Date Stamp 2012-08-22 00:01:01 -04:00
Brad King 4c9ae472ec VS11: Rename 'Immersive' to 'WindowsAppContainer' (#12930)
Since commit 9e01aefd (VS: Add support for WinRT project properties,
2012-02-03) CMake generates for VS 11 projects the 'Immersive' element
for the VS_WINRT_EXTENSIONS target property.  That was based on the VS
11 preview version.  The final version renamed the element to
'WindowsAppContainer', so generate that instead.

Suggested-by: Eugene Golushkov <eugene_gff@ukr.net>
2012-08-21 13:02:39 -04:00
Stephen Kelly 717f31a877 Compile with both Qt4 and Qt5. 2012-08-21 13:36:51 +02:00
Stephen Kelly 066e85893f Replace two include_directories with a setting. 2012-08-21 13:36:26 +02:00
Stephen Kelly 430ba9faef Use add_subdirectory instead of the obsolete subdirs. 2012-08-21 13:36:26 +02:00
Stephen Kelly 32a572564a Remove an if which is always true.
CMake based CMake build requires version 2.8.2 as of version 2.8.9.
2012-08-21 13:36:26 +02:00
Stephen Kelly 0b6625c605 Move variable setting down to where it relates to. 2012-08-21 13:36:26 +02:00
Stephen Kelly 8ab312b693 Use CMake platform variables instead of Qt ones.
The Qt ones no longer exist in Qt 5.
2012-08-21 13:36:21 +02:00
Stephen Kelly bd728f6fee Add a return-after-error if an old Qt is found.
No need for an else after a return.
2012-08-21 11:08:04 +02:00
Stephen Kelly ca7fb14f9b Fix the test setting COMPILE_DEFINITIONS target property 2012-08-21 11:05:07 +02:00
Stephen Kelly 733deb66c6 Fix CompileDefinitions test on Visual Studio.
Avoid testing unsupported spaces in define values.
2012-08-21 11:04:09 +02:00
Kitware Robot 8f996a96f4 CMake Nightly Date Stamp 2012-08-21 00:01:02 -04:00
James Bigler 787287cc46 Added CUDA_SOURCE_PROPERTY_FORMAT. Allows setting per file format (OBJ or PTX)
Added CUDA_SOURCE_PROPERTY_FORMAT that allows users to set the format (OBJ or PTX) on a
per file basis.
2012-08-20 17:33:35 -06:00
Alex Neundorf 95e502ee7c error out if CTEST_USE_LAUNCHERS is TRUE but RULE_LAUNCH_* are not set
Otherwise, CTEST_USE_LAUNCHERS can be set to true in a driving ctest
script, and everything looks like it would work and reports 0 build errors,
but actually there can be any amount of errors and they are just not reported.
By adding this check cmake now errors out if CTEST_USE_LAUNCHERS is enabled, but
the RULE properties are not set, which would lead to a not-working ctest run.

Alex
2012-08-20 23:19:44 +02:00
James Bigler db207e4065 FindCUDA: Added CUDA_HOST_COMPILER variable.
Added a new CUDA variable for specifying the CUDA_HOST_COMPILER.  This will allow users to
be able to specify which host compiler to use for invoking NVCC with.  By default it will
use the compiler used for host compilation.  This is convenient for when you want to
specify a different compiler than the default compiler.  You end up using the same
compiler for both the NVCC compilation and the host compilation instead of using the
default compiler in the path for NVCC.
2012-08-20 15:14:37 -06:00
Stephen Kelly c82fbe0c1f Fix unfortunate documentation error for PIC feature.
The wrong variable is documented, and it is not referred to in
the target-specific property.
2012-08-20 22:33:27 +02:00
Stephen Kelly 3dae652b4e Don't duplicate -D defines sent to the compiler.
There is no need to do so. Be consistent with include directories and
ensure uniqueness.

This requires changing the API of the cmLocalGenerator::AppendDefines
method, and changing the generators to match.

The test unfortunately can't test for uniqueness, but it at least verifies
that nothing gets lost.
2012-08-20 22:30:11 +02:00
Stephen Kelly ee949d8871 Remove duplicate 'of' from docs. 2012-08-20 22:26:05 +02:00
David Cole 32710211ad Merge topic 'qt4_use_modules'
1420691 Add new qt4_use_modules function.
2012-08-20 15:42:43 -04:00
David Cole c79dd4d951 Merge topic 'read-less-from-version-headers'
4be6783 read less from version headers into variables
2012-08-20 15:42:34 -04:00
David Cole 19e210af90 Merge topic 'no-regex-escape-space'
637207e do not escape spaces in regular expressions
2012-08-20 15:42:25 -04:00
David Cole 0afaedfb4a Merge topic 'FindGTK2_12306'
ad30210 FindGTK2: Add GTK2_CAIROMMCONFIG_INCLUDE_DIR for cairommconfig.h
2012-08-20 15:42:13 -04:00
David Cole e19f260712 Merge topic 'FindOpenSceneGraph_13094'
dd60ed2 Merge topic 'lib64-cleanup' into FindOpenSceneGraph_13094
224b5de FindOpenSceneGraph: CMake variable OSG_DIR influences detection now too
2012-08-20 15:42:03 -04:00
David Cole 9a4b4f2223 Merge topic 'lib64-cleanup'
cfe4ac4 use PATH_SUFFIXES to simplify find_* calls
b04650e use the find_* functions ENV parameter
2012-08-20 15:41:53 -04:00
David Cole 4097914bbd Merge topic 'fix-13236-mark-vars-as-advanced'
3f9fa5c ProcessorCount: Mark find_program vars as advanced (#13236)
2012-08-20 15:41:44 -04:00
David Cole 8d8268b307 Merge topic 'cmcldeps-needs-cl'
4a35bd0 Ninja: don't crash on returned 0 pointer
3632f24 Ninja: cmcldeps needs a compiler
2012-08-20 15:41:36 -04:00
David Cole ba9fde6503 Merge topic 'fix-13315-incorrect-mfc-file-name'
e4e6ea0 InstallRequiredSystemLibraries: Use correct file names (#13315)
2012-08-20 15:41:26 -04:00
David Cole e04245e2d5 Merge topic 'HandleMacFrameworkIncludeDirs_13465'
a3815e6 -fix line length
9110d0e Eclipse on OSX: improve handling of framework include dirs (#13367)
d97b385 Eclipse on OSX: fix handling of framework include dirs (#13464)
2012-08-20 15:41:14 -04:00