summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalXCodeGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* ENH: Simplify Xcode CreateBuildSettings methodBrad King2009-07-021-3/+2
| | | | | | | The cmGlobalXCodeGenerator::CreateBuildSettings had the three arguments productName, productType, and fileType that returned information used by only one of the call sites. This change refactors that information into separate methods named accordingly.
* ENH: Generate native Xcode 3.0 and 3.1 projectsBrad King2009-06-291-1/+4
| | | | | | | | | | CMake previously generated Xcode project files labeled as 2.4-compatible by recent versions of Xcode (3.0 and 3.1). It is better to generate native Xcode 3.0 and 3.1 projects. In particular, this can improve build times by using the "Build independent targets in parallel" feature. Patch from Doug Gregor. See issue #9216.
* BUG: Do not automatically set HEADER_FILE_ONLYBrad King2009-03-161-0/+1
| | | | | | | | | | Long ago the native build system generators needed HEADER_FILE_ONLY to be set on header files to stop them from building. The modern generators correctly handle headers without the help of this property. This removes automatic setting of the property so that it can be used reliably as an indicator of project author intention. It fixes VS IDE project files to show header files normally instead of excluded (broken by the fix for issue #7845).
* STYLE: Fix line-too-longBrad King2008-10-101-1/+2
|
* ENH: Put custom target sources in Xcode projectsBrad King2008-10-091-0/+1
| | | | | Source files in custom targets are now placed in the Xcode project for convenient editing. See issue #5848.
* BUG: Fix Xcode reference to Info.plist resourceBrad King2008-07-031-0/+2
| | | | | | | | | | | - Generated Xcode projects for application bundles list the CMake-generated Info.plist input file as a resource. - The location of the input file was moved by a previous commit, but the reference to it as a resource file was not updated. - This change moves the file to CMakeFiles/<tgt>.dir/Info.plist to give it a more intuitive name in the Xcode project. - We also update the reference to point at the correct location. - See bug #7277.
* ENH: Create COMPILE_DEFINITIONS property for targets and source files. ↵Brad King2008-01-141-0/+3
| | | | Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators.
* ENH: Improvements to the Xcode generator. Build frameworks using native Copy ↵David Cole2007-08-141-5/+6
| | | | Headers and Copy Bundle Resources phases. Fix bugs: eliminate folders with no names, ensure source files show up in multiple targets, remove empty utility targets from Sources subtrees, ensure that fileRefs only show up once in each grouping folder.
* ENH: add OPTIONAL keyword to ENABLE_LANGUAGE, so it will be possible to doAlexander Neundorf2007-06-281-1/+1
| | | | | | | | | | | | | something like this: ENABLE_LANGUAGE(ASM-ATT) IF(CMAKE_ASM-ATT_COMPILER_WORKS) ... do assembler stufff ELSE(CMAKE_ASM-ATT_COMPILER_WORKS) ... fallback to generic C/C++ ENDIF(CMAKE_ASM-ATT_COMPILER_WORKS) Alex
* ENH: add copy header stuffBill Hoffman2007-05-241-0/+3
|
* BUG: Fixed generation of XCODE_DEPEND_HELPER.make into proper directory. ↵Brad King2007-05-111-1/+1
| | | | Cleaned up duplicate code created by recent changes.
* STYLE: fix line lengthAlexander Neundorf2007-05-101-1/+1
| | | | Alex
* ENH: now target names can be used in add_custom_command() andAlexander Neundorf2007-05-091-0/+9
| | | | | | | | | | add_custom_target() as COMMAND, and cmake will recognize them and replace them with the actual output path of these executables. Also the dependency will be added automatically. Test included. ENH: moved TraceVSDependencies() to the end of GlobalGenerator::Configure(), so it is done now in one central place Alex
* ENH: Removed unused variables LibraryOutputPath and ExecutableOutputPath. ↵Brad King2007-03-081-3/+0
| | | | Each target is asked for its own output directory. This is a step towards bug#2240.
* ENH: check in initial conv library stuffBill Hoffman2007-02-161-1/+5
|
* BUG: cmGlobalGenerator::Build should not always use the /fast target name ↵Brad King2006-06-011-1/+2
| | | | because dependency checking is often required. It now takes an argument specifying whether to use the /fast target name, and the argument is currently only true for try-compiles.
* ENH: fix rebuild problem with xcode and universal binariesBill Hoffman2006-05-161-0/+1
|
* STYLE: fix line lengthKen Martin2006-05-111-1/+2
|
* STYLE: some m_ to this-> cleanupKen Martin2006-03-151-23/+23
|
* STYLE: fix line lengthsBill Hoffman2006-03-101-2/+5
|
* BUG: Fixed installation of MacOSX Bundle executables and the corresponding ↵Brad King2006-03-031-1/+4
| | | | install_name remapping support. Extended the BundleTest test to check that this all works. Part of these fixes required changing the signature of AppendDirectoryForConfig in all generators. It now accepts prefix and suffix strings to deal with whether leading or trailing slashes should be included with the configuration subdirectory.
* ENH: Cleanup global targets even more and potentially fix XcodeAndy Cedilnik2006-03-011-0/+3
|
* COMP: Even more global target fixesAndy Cedilnik2006-02-241-1/+3
|