summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalXCodeGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmGeneratorTarget: Constify cmSourceFile* in containers.Stephen Kelly2014-03-131-3/+3
| | | | | Some of them will be used with other APIs which require value_type to be cmSourceFile const*.
* cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface.Stephen Kelly2014-03-131-0/+5
| | | | Make it public for future external calls.
* Generalize cmCustomCommandGenerator to more fieldsBrad King2014-03-121-15/+14
| | | | | | | Until now the cmCustomCommandGenerator was used only to compute the command lines of a custom command. Generalize it to get the comment, working directory, dependencies, and outputs of custom commands. Update use in all generators to support this.
* cmGlobalXCodeGenerator: Simplify handling of multiple outputsBrad King2014-03-121-31/+18
| | | | | Make the multiple output pair map more local. Generate it where we have the current configuration available.
* cmCustomCommand: Return std::string from GetWorkingDirectoryBrad King2014-03-121-2/+3
|
* stringapi: Use strings for program pathsBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings for generator namesBen Boeckel2014-03-081-3/+4
|
* stringapi: Use strings for directoriesBen Boeckel2014-03-081-1/+1
|
* stringapi: Miscellaneous char* parametersBen Boeckel2014-03-081-7/+7
|
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-16/+11
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-41/+41
| | | | | | | | | | | 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-11/+12
|
* stringapi: Use strings for the languagesBen Boeckel2014-03-081-24/+17
|
* stringapi: Use strings for AddString methodsBen Boeckel2014-03-081-1/+1
| | | | It gets turned into a string anyways, so pass them in.
* cmTarget: Move SourceFileFlags to cmGeneratorTarget.Stephen Kelly2014-02-241-13/+15
|
* OS X: Make sure RPATHs are unique to avoid possible corruption.Clinton Stimpson2014-02-031-3/+37
| | | | | | | | 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.
* cmMakefile: Make FindSourceGroup const.Stephen Kelly2014-01-221-4/+4
| | | | | Return a pointer instead of a reference. This allows making the accessor const with the least impact.
* Xcode: Fix storyboard viewRuslan Baratov2014-01-161-3/+9
| | | | | | | Images and xib files must have 'lastKnownFileType' attribute to be displayed correctly. If xib file has attribute 'explicitFileType' it is displayed as raw xml. If static image has attribute 'explicitFileType' it is displayed as question mark on storyboard.
* Xcode: Remove dead codeRuslan Baratov2014-01-161-4/+0
| | | | | Variable 'ext' already checked for equality to "xib" so remove the branch that will never be executed.
* cmTarget: Make GetSourceFiles populate an out-vector parameter.Stephen Kelly2014-01-091-4/+8
| | | | | In a future patch, this will also be populated with extra sources from the linked dependencies.
* cmGeneratorTarget: Add methods to access source file groups.Stephen Kelly2014-01-091-3/+5
| | | | | These methods and others will be able to get a config parameter later to implement the INTERFACE_SOURCES feature.
* Xcode: Fix storyboard viewRuslan Baratov2014-01-071-1/+4
| | | | | | | | | | Since commit 56831461 (Xcode: Use explicitFileType to mark source types, 2013-04-16) the Xcode generator prefers to use explicitFileType to tell Xcode about each source file type. This works better than lastKnownFileType for some file types, but not for "file.storyboard". If storyboard file has attribute 'explicitFileType' it is displayed incorrectly (as raw xml). Switch it back to 'lastKnownFileType'.
* cmTarget: Remove some of the INTERFACE_LIBRARY whitelisted properties.Stephen Kelly2014-01-061-1/+2
| | | | | | | | | | | There is no need to allow EXCLUDE_* properties, because an INTERFACE_LIBRARY has no direct build output. IMPORTED_LINK_INTERFACE_LANGUAGES are relevant only to static libraries. VERSION is relevant only to the filename of direct build outputs, which INTERFACE_LIBRARY does not have.
* Constify handling of target dependencies.Stephen Kelly2013-12-111-1/+1
|
* Xcode: Fix duplicate target subfolders (#14133)Stephan Tolksdorf2013-12-021-7/+7
| | | | | | | Fix logic introduced by commit eeeeca10 (XCode: Support target folders on XCode, 2011-02-20) to avoid duplicate subfolders. The problem was that no slash was appended to the curr_tgt_folder string on the it != this->TargetGroup.end() path.
* Teach GenerateBuildCommand to find its own make programBrad King2013-11-181-7/+3
| | | | | | | | Add a cmGlobalGenerator::SelectMakeProgram method to select a caller-provided make program, the CMAKE_MAKE_PROGRAM cache entry, or a generator-provided default. Call it from all implementations of the GenerateBuildCommand method with the corresponding generator's default, if any.
* cmGlobalGenerator: Cleanup GenerateBuildCommand APIBrad King2013-11-181-37/+29
| | | | | | | | | 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.
* Xcode: Generate 'folder' source type for directories (#14498)Michael Priestman2013-10-211-5/+16
| | | | | | Teach the Xcode generator to set 'lastKnownFileType' to be 'folder' for file references that are directories. If you set 'explicitFileType' to 'sourcecode', then Xcode cannot browse the directory.
* Drop the 'Full' field from cmDocumentationEntryBrad King2013-10-161-1/+0
| | | | | We need only 'Brief' for usage documentation. We no longer have builtin 'Full' documentation, which is now in Help/*/*.rst files.
* Add the INTERFACE_LIBRARY target type.Stephen Kelly2013-10-071-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | This target type only contains INTERFACE_* properties, so it can be used as a structural node. The target-specific commands enforce that they may only be used with the INTERFACE keyword when used with INTERFACE_LIBRARY targets. The old-style target properties matching LINK_INTERFACE_LIBRARIES_<CONFIG> are always ignored for this target type. The name of the INTERFACE_LIBRARY must match a validity generator expression. The validity is similar to that of an ALIAS target, but with the additional restriction that it may not contain double colons. Double colons will carry the meaning of IMPORTED or ALIAS targets in CMake 2.8.13. An ALIAS target may be created for an INTERFACE library. At this point it can not be exported and does not appear in the buildsystem and project files are not created for them. That may be added as a feature in a later commit. The generators need some changes to handle the INTERFACE_LIBRARY targets returned by cmComputeLinkInterface::GetItems. The Ninja generator does not use that API, so it doesn't require changes related to that.
* Xcode: Fix OBJECT library support for Xcode 5 (#14254)Brad King2013-10-021-19/+40
| | | | | | | | | | | | | | | Xcode 2.1 through 4 supported $(CURRENT_ARCH) in a PBXFileReference 'path' value used in the "Link Binary with Libraries" build phase. CMake uses this to reference object file locations on link lines to bring in OBJECT library content. However, Xcode 5 now evaluates the $(CURRENT_ARCH) reference in this context as "undefined_arch" so the wrong path is given to the linker. There seems to be no alternative way to produce an architecture-specific value in a PBXFileReference. Fortunately Xcode 5 now also handles link dependencies for paths linked through OTHER_LDFLAGS. For Xcode >= 5, move the OBJECT library object file references from the link build phase to OTHER_LDFLAGS. We can still show the object files in the source group listing in either case.
* Xcode: Drop XCODE_DEPEND_HELPER for Xcode >= 5Brad King2013-10-021-12/+19
| | | | | | Xcode 5.0 now computes dependencies from files linked through OTHER_LDFLAGS, so we no longer need the XCODE_DEPEND_HELPER hack to re-link dependents when targets change.
* Unify the way the flags of a static library are readPatrick Gansterer2013-07-311-15/+19
| | | | | Introduce cmLocalGenerator::GetStaticLibraryFlags() to have a central function for getting the linker flags for a given target.
* Refactor cmTarget::GetCompileDefinitions to use an out-vector, not a string.Stephen Kelly2013-07-111-2/+3
| | | | Refactor to create AddCompileDefinitions.
* Refactor target COMPILE_OPTIONS and COMPILE_FLAGS handlingBrad King2013-06-271-6/+5
| | | | | | | | | | | | Replace the cmLocalGenerator GetCompileOptions method with an AddCompileOptions method since all call sites of the former simply append the result to a flags string anyway. Add a "lang" argument to AddCompileOptions and move the CMAKE_<LANG>_FLAGS_REGEX filter into it. Move the call sites in each generator to a location that has both the language and configuration available. In the Makefile generator this also moves the flags from build.make to flags.make where they belong.
* Add whitespace after colons in error messages.Stephen Kelly2013-06-211-1/+1
|
* Merge topic 'xcode-framework-paths'Brad King2013-06-051-11/+7
|\ | | | | | | | | 21a0bea Xcode: Fix framework search paths in STATIC library targets (#14191)
| * Xcode: Fix framework search paths in STATIC library targets (#14191)Brad King2013-06-041-11/+7
| | | | | | | | | | | | | | | | | | | | In commit 2bc22bda (Xcode: Add frameworks search paths from link dependeny closure, 2012-12-07) we made framework search paths from the link closure conditional on target type, skipping it on STATIC and OBJECT library targets that do not actually link. However, the framework search paths also influence the compile lines (-F options) so we need them for all target types. The Makefile generator already does this, as did the Xcode generator prior to the above-mentioned commit.
* | Merge topic 'VISIBILITY_PRESET-property'Brad King2013-06-051-0/+3
|\ \ | | | | | | | | | | | | | | | cd1fa53 Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property. 0e9f4bc Introduce target property <LANG>_VISIBILITY_PRESET
| * | Introduce target property <LANG>_VISIBILITY_PRESETStephen Kelly2013-06-021-0/+3
| | | | | | | | | | | | | | | | | | This is initialized by CMAKE_<LANG>_VISIBILITY_PRESET. The target property is used as the operand to the -fvisibility= compile option with GNU compilers and clang.
* | | Merge topic 'cfbundle-location'Brad King2013-06-041-7/+1
|\ \ \ | | | | | | | | | | | | | | | | 483e208 OS X: Fix getting of CFBundle LOCATION property.
| * | | OS X: Fix getting of CFBundle LOCATION property.Clinton Stimpson2013-06-031-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes bug #13797. The kinds of changes applied in 373faae5 for frameworks are now applied to CFBundle. The prefix and suffix for CFBundles are now handled in cmTarget::GetFullNameInternal.
* | | | Merge topic 'target-COMPILE_OPTIONS'Brad King2013-06-031-2/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 24466f2 Add target_compile_options command. 80ca9c4 Add COMPILE_OPTIONS target property. 7cb2308 cmTarget: Rename LinkInterfaceIncludeDirectoriesEntries 47f80d9 cmTarget: Rename struct to be more re-usable. 1319a14 Add <LANG>_COMPILER_ID generator expressions. 3549676 Add cmLocalGenerator::GetCompileOptions. f3ad863 VS6: Rename some variables to correspond to config values.
| * | | | Add cmLocalGenerator::GetCompileOptions.Stephen Kelly2013-06-021-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently it only adds the contents of the COMPILE_FLAGS target property, but it can be extended to handle a new COMPILE_OPTIONS generator expression enabled property.
* | | | | Merge topic 'rpath-on-mac'Brad King2013-06-031-0/+23
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dc1d025 OS X: Add test for rpaths on Mac. 8576b3f OS X: Add support for @rpath in export files. 00d71bd Xcode: Add rpath support in Xcode generator. 94e7fef OS X: Add RPATH support for Mac.
| * | | | | Xcode: Add rpath support in Xcode generator.Clinton Stimpson2013-06-031-0/+23
| | | | | |
* | | | | | Merge topic 'xcode-shlib-versioning'Brad King2013-06-031-15/+79
|\ \ \ \ \ \ | |/ / / / / | | | | | | | | | | | | | | | | | | cbe3f20 Xcode: Add support for shared library versioning
| * | | | | Xcode: Add support for shared library versioningClinton Stimpson2013-05-291-15/+79
| | |/ / / | |/| | | | | | | | | | | | | | | | | | Add a post-build command to shared library targets to create the versioning symbolic links.
* | | | | Merge topic 'framework-refactor'Brad King2013-06-031-2/+7
|\ \ \ \ \ | |/ / / / | | / / / | |/ / / |/| | | 373faae Refactor how bundles and frameworks are supported.