summaryrefslogtreecommitdiff
path: root/Source/cmGlobalXCodeGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix some spelling errors in commentsGeoff Viola2014-10-131-1/+1
|
* Merge topic 'xcode-6-librarian-flags'Brad King2014-07-291-0/+1
|\ | | | | | | | | 608cf814 Xcode: Fix static library creation for Xcode 6 (#15038)
| * Xcode: Fix static library creation for Xcode 6 (#15038)Brad King2014-07-281-0/+1
| | | | | | | | | | | | | | | | | | Xcode 6 introduced an 'OTHER_LIBTOOLFLAGS' setting for the "Other Librarian Flags" of a static library. Now 'OTHER_LDFLAGS' are ignored. Teach the Xcode generator to choose the correct name for the build setting based on the type of target and the version of Xcode. Inspired-by: Jamie Kirkpatrick <jkp@spotify.com>
* | cmGlobalGenerator: Create a non-virtual 'DoGenerate' methodBrad King2014-07-221-7/+2
| | | | | | | | | | | | | | Make the virtual 'Generate' method protected. Make 'DoGenerate' the main entry point to generation. This gives cmGlobalGenerator a chance to do some early operations before the individual generator-specific implementations take over.
* | Allow a toolchain file to specify a generator toolsetBrad King2014-06-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delay use of CMAKE_GENERATOR_TOOLSET until the CMakeSystem.cmake file has been configured and loaded during the first project() or enable_language() command. This gives the toolchain file named by CMAKE_TOOLCHAIN_FILE a chance to set CMAKE_GENERATOR_TOOLSET. This point is still early enough to set the generator toolset prior to the initialization of any languages that might use the toolset. The cmake::GeneratorToolset member variable remains an indication of what was specified by the -T option or loaded from the cache. It does not need to be updated based on the toolchain file setting. The cmMakefile::TryCompile can still pass cmake::GeneratorToolset into the inner instance because the try-compiled project will do platform and language initialization using the CMakeSystem module configured for the outer project. Extend the RunCMake.GeneratorToolset test with cases that use a toolchain file to set CMAKE_GENERATOR_TOOLSET.
* | Xcode: Rename internal variable {Platform => Generator}ToolsetBrad King2014-06-041-1/+1
| | | | | | | | The latter matches with CMAKE_GENERATOR_TOOLSET better.
* | Xcode: Add source file property to control file type (#14854)Brad King2014-05-151-2/+4
| | | | | | | | | | | | | | | | | | Add source file properties to control Xcode file type attributes: XCODE_EXPLICIT_FILE_TYPE => explicitFileType XCODE_LAST_KNOWN_FILE_TYPE => lastKnownFileType Add a RunCMake.XcodeProject test to verify generated project content.
* | cmGlobalGenerator: Make ComputeTargetObjects non-virtualStephen Kelly2014-03-151-1/+0
| | | | | | | | | | | | | | | | Implement it in terms of the ComputeObjectFilenames virtual method on the local generators. Remove the reimplementation from the global generators which are now all functionally identical.
* | cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface.Stephen Kelly2014-03-131-0/+1
| | | | | | | | Make it public for future external calls.
* | cmGlobalXCodeGenerator: Simplify handling of multiple outputsBrad King2014-03-121-3/+1
| | | | | | | | | | Make the multiple output pair map more local. Generate it where we have the current configuration available.
* | stringapi: Use strings for program pathsBen Boeckel2014-03-081-1/+1
| |
* | stringapi: Use strings for generator namesBen Boeckel2014-03-081-2/+2
| |
* | stringapi: Use strings for directoriesBen Boeckel2014-03-081-1/+1
| |
* | stringapi: Miscellaneous char* parametersBen Boeckel2014-03-081-2/+2
| |
* | stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-5/+6
| |
* | strings: Remove cmStdString referencesBen Boeckel2014-03-081-8/+8
| | | | | | | | | | | | | | | | | | | | | | Casts from std::string -> cmStdString were high on the list of things taking up time. Avoid such implicit casts across function calls by just using std::string everywhere. The comment that the symbol name is too long is no longer relevant since modern debuggers alias the templates anyways and the size is a non-issue since the underlying methods are generated since it's inherited.
* | stringapi: Use strings for VS project namesBen Boeckel2014-03-081-1/+1
| |
* | stringapi: Use strings in target nameBen Boeckel2014-03-081-2/+2
| |
* | stringapi: Use strings for the languagesBen Boeckel2014-03-081-5/+6
| |
* | stringapi: Use strings for AddString methodsBen Boeckel2014-03-081-1/+1
|/ | | | It gets turned into a string anyways, so pass them in.
* OS X: Make sure RPATHs are unique to avoid possible corruption.Clinton Stimpson2014-02-031-0/+3
| | | | | | | | When using link_directories() and including CMAKE_CFG_INTDIR, one can end up with duplicate RPATHs in the binary which install_name_tool cannot fix without corrupting the binary. Also, the cmake_install.cmake file has been fixed to correctly handle these generator specific variables.
* cmGlobalGenerator: Make SelectMakeProgram const.Stephen Kelly2014-01-121-1/+1
|
* Constify handling of target dependencies.Stephen Kelly2013-12-111-1/+1
|
* cmGlobalGenerator: Cleanup GenerateBuildCommand APIBrad King2013-11-181-8/+10
| | | | | | | | | All cmGlobalGenerator::GenerateBuildCommand call sites that need to produce a string now generate "cmake --build" commands. The remaining call sites immediately pass the result to cmSystemTools::RunSingleCommand. Avoid the intermediate string and argument parsing by directly producing a vector of strings. Also drop the ignoreErrors argument because no call sites remain that use it.
* Require CMAKE_<LANG>_COMPILER to be found as a full pathBrad King2013-10-281-0/+1
| | | | | | | | | | | | | | | | | | | | All generators now support detection of the full path to the compiler, so require it to be so. This will allow CMake<LANG>Information.cmake and other logic to assume the full path to the compiler tool is available. The Makefile generators already rejected CMAKE_<LANG>_COMPILER values that did not name an existing compiler. Extend this error message to all generators, make it occur as early as possible, and improve the message with advice about how to set the compiler. If the full path to the compiler is not known, finish enabling languages with a fatal error so configuration does not continue. For now, allow the RC language compiler to not be a full path. Later we will need to detect the full path to "rc" under the VS IDE. Add a RunCMake.CompilerNotFound test to cover failure cases. Fix the RunCMake.CompilerChange test EmptyCompiler case to work when configuration does not continue past enable_language.
* Escape target flags taken from COMPILE_OPTIONSBrad King2013-06-271-1/+1
| | | | | | | | | | | | Factor appending of individual flags out into an AppendFlagEscape method in cmLocalGenerator and teach it to use EscapeForShell. Update all COMPILE_OPTIONS handling to use AppendFlagEscape. Override the method in the Xcode generator to use its custom escape implementation. Teach the CompileOptions test to add an option that requires escaping everywhere instead of just with the GNU tools.
* Add projectDir parameter to GenerateBuildCommandPetr Kmoch2013-04-121-0/+1
| | | | | | | | Extend the cmGlobalGenerator::GenerateBuildCommand virtual method signature with a "projectDir" parameter specifying the top of the project build tree for which the build command will be generated. Populate it from call sites in cmGlobalGenerator::Build where a fully-generated build tree should be available.
* Xcode: Implement generator toolset selection (#9831, #13802)Brad King2013-02-071-0/+2
| | | | | Implement generator toolset selection (cmake -T) for Xcode > 2.0 by adding the GCC_VERSION build setting to project files.
* Make cmGlobalGenerator::GetDocumentation() a static functionPatrick Gansterer2012-11-191-1/+1
| | | | | Making the function static allows us to call it directly, without creating and removing an instance of the generator.
* Introduce the abstract class cmGlobalGeneratorFactoryPatrick Gansterer2012-11-191-1/+3
| | | | | This new abstract class allows us move some logic from the cmGlobalGenerator into its own layer in a next step.
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-18/+18
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* Pre-compute object file names before Xcode generationDavid Cole2012-03-191-0/+2
|
* Xcode: Re-factor some existing methods into "FromPath" variantsDavid Cole2012-03-161-0/+6
| | | | | ...to avoid depending on cmSourceFile instances. Prep work for supporting OBJECT_LIBRARY in the Xcode generator.
* Xcode: Re-factor code into GetObjectsNormalDirectory methodDavid Cole2012-03-161-0/+5
| | | | | ...in preparation for calling it from more than one location. Required to support OBJECT_LIBRARY targets in Xcode.
* Rename/constify build-time config placeholder lookupBrad King2012-03-091-1/+1
| | | | | | Rename cmGlobalGenerator::GetCMakeCFG{InitDirectory => IntDir} to have a shorter name without a typo. Add a 'const' qualifier since the method is only for lookup and never needs to modify anything.
* Remove unused partial OBJECT_FILES property implementationBrad King2012-03-061-3/+0
| | | | | | | Remove partial implementation added by commit ca0230a3 (check in initial conv library stuff, 2007-02-16) since it was never finished. It does not make sense for multi-configuration generators since no specific build configuration is processed at CMake time.
* Constify XCode generator getters to match cmGlobalGeneratorBrad King2011-10-071-2/+2
| | | | | | | Commit 8a0eb78f (Constify many getters of cmGlobalGenerator, 2011-03-26) added const qualifiers to many cmGlobalGenerator methods. Fix the signature of the virtual function overrides in cmGlobalXCodeGenerator to match.
* Xcode: Save object id values in CMakeCache.txt (#11690)David Cole2011-08-241-0/+4
| | | | | | | | | For project and target objects, save their ids in CMakeCache.txt. Hopefully, that will be enough to allow user settings to be saved across multiple CMake generate operations. Other object types may also need their ids saved: if so, more code than this commit will be necessary...
* Merge topic 'xcode-source_groups-folders-issue-10039'Brad King2011-06-081-0/+2
|\ | | | | | | | | | | | | | | f09ba0f Fix style errors added by parent and grandparent eeeeca1 XCode: Support target folders on XCode. 59ed84e Xcode: Support multiple level nesting of XCode folders (#10039) d0a403f CMake: Move tokenize to cmSystemTools
| * Xcode: Support multiple level nesting of XCode folders (#10039)Johan Björk2011-06-071-0/+2
| |
* | Xcode: Fix parallel build depends with universal binaries (#11844)Brad King2011-06-061-0/+2
|/ | | | | | | | A post-build phase of each target invokes the XCODE_DEPEND_HELPER.make file to erase any targets that link to it. Narrow the set of targets tested by each post-build phase to those that depend on the newly completed target. This avoids removing files from partially built unrelated targets that happen to be building in parallel.
* Xcode: Make generation depend on all input directoriesBrad King2011-01-131-1/+2
| | | | | | | | Previously the Xcode generator would rerun CMake only if input file dependencies in the top-level directory changed. Teach it to depend on input files from all directories. Other generators already do this. Reported-by: Johan Björk <phb@spotify.com>
* Fix issue #2336 - honor the -C arg to ctest. Honor it for all stages of ↵David Cole2009-12-041-0/+5
| | | | running -D dashboards from the command line and running ctest_configure, ctest_build and ctest_test commands in -S scripts. Also, allow a script to change it by setting the CTEST_CONFIGURATION_TYPE variable: allows for multiple configuration build/test cycles within one script. Add a new signature for the cmake command build_command that accepts CONFIGURATION as one argument. The original build_command signature is still there, but now marked as deprecated in the documentation. Of course... also add CTestConfig tests to verify that -C is honored for -D dashboards and -S scripts.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* Teach Xcode generator to set XCODE_VERSIONBrad King2009-09-231-3/+3
| | | | | We set the variable 'XCODE_VERSION' in the CMake language to the Xcode version string (e.g. "3.1.2"). Platform config files may use it later.
* Fix Xcode project references to the source treeBrad King2009-09-221-0/+3
| | | | | | | | | | | | | Xcode project source file references need to always be relative to the top of the source tree in order for SCM and debug symbols to work right. We must even allow the relative paths to cross outside of the top source or build directories. For subdirectory project() command Xcode projects we use the source directory containing the project() command as the top. Relative paths are generated accordingly for each subproject. See issue #8481.
* Remove cmGlobalXCode21Generator subclassBrad King2009-09-191-4/+3
| | | | | | | This subclass of cmGlobalXCodeGenerator only provided two virtual method overrides, and it made construction of the Xcode generator instance complicated. This commit removes it and replaces the virtual methods with tests of the Xcode version. The change removes duplicate code.
* Separate Xcode flag escaping code from definesBrad King2009-07-291-0/+4
| | | | | Generalize the core Xcode generator preprocessor flag escaping code to be useful for escaping all flags.
* BUG: Fix Xcode linker languageBrad King2009-07-101-0/+2
| | | | | | | | | | Xcode does not seem to support direct requests for using the linker for a particular language. It always infers the linker using the languages in the source files. When no user source files compile with target's linker language we add one to help Xcode pick the linker. A typical use case is when a C executable links to a C++ archive. The executable has no C++ source files but we need to use the C++ linker.
* BUG: Do not generate "global" Xcode configBrad King2009-07-021-2/+1
| | | | | | | | Xcode 2.0 and below supported only one configuration, but 2.1 and above support multiple configurations. In projects for the latter version we have been generating a "global" set of buildSettings for each target in addition to the per-configuration settings. These global settings are not used by Xcode 2.1 and above, so we should not generate them.