Brad King
67834f2d53
BUG: Correct Mac OS X framework behavior
...
- Place the built library in foo.framework/Versions/A/foo
- Do not create unused content symlinks (like PrivateHeaders)
- Do not use VERSION/SOVERSION properties for frameworks
- Make cmTarget::GetDirectory return by value
- Remove the foo.framework part from cmTarget::GetDirectory
- Correct install_name construction and conversion on install
- Fix MACOSX_PACKAGE_LOCATION under Xcode to use the
Versions/<version> directory for frameworks
- Update the Framework test to try these things
2008-04-08 00:06:47 -04:00
Brad King
9ed4266306
ENH: Cleanup impl of PUBLIC_HEADER, PRIVATE_HEADER, and RESOURCE properties
2008-02-18 16:38:34 -05:00
Brad King
67f8c0fd10
ENH: Allow multiple OS X applications bundles to be created in a single build directory. Converted Info.plist files to be generated directly instead of configured with make variables. The MACOSX_BUNDLE_* variables are now properties (and vars for compatibility).
2008-02-14 15:31:08 -05:00
Brad King
410d7b0f36
ENH: Avoid computing link information for static library targets. They do not link.
2008-02-07 16:49:11 -05:00
Brad King
ffac622a85
ENH: Add cmTarget::GetLinkInformation method to allow several places in the generators to share link information while only computing it once per configuration for a target. Use it to simplify the chrpath feature.
2008-01-29 15:07:33 -05:00
Brad King
28ea034737
ENH: Support exporting/importing of Framework targets.
...
- Imported frameworks have the FRAMEWORK property set
- Added cmTarget::IsFrameworkOnApple method to simplify checks
- Also remove separate IMPORTED_ENABLE_EXPORTS property and just use ENABLE_EXPORTS since, like FRAMEWORK, it just represents the target type.
- Document FRAMEWORK keyword in INSTALL command.
- Updated IMPORTED_LOCATION property documentation for Frameworks
2008-01-28 13:05:58 -05:00
Brad King
5594ad4885
ENH: Updated exporting and importing of targets to support libraries and configurations.
...
- Created cmExportFileGenerator hierarchy to implement export file generation
- Installed exports use per-config import files loaded by a central one.
- Include soname of shared libraries in import information
- Renamed PREFIX to NAMESPACE in INSTALL(EXPORT) and EXPORT() commands
- Move addition of CMAKE_INSTALL_PREFIX to destinations to install generators
- Import files compute the installation prefix relative to their location when loaded
- Add mapping of importer configurations to importee configurations
- Rename IMPORT targets to IMPORTED targets to distinguish from windows import libraries
- Scope IMPORTED targets within directories to isolate them
- Place all properties created by import files in the IMPORTED namespace
- Document INSTALL(EXPORT) and EXPORT() commands.
- Document IMPORTED signature of add_executable and add_library
- Enable finding of imported targets in cmComputeLinkDepends
2008-01-28 08:38:36 -05:00
Brad King
96fd5909d9
ENH: Implement linking with paths to library files instead of -L and -l separation. See bug #3832
...
- This is purely an implementation improvement. No interface has changed.
- Create cmComputeLinkInformation class
- Move and re-implement logic from:
cmLocalGenerator::ComputeLinkInformation
cmOrderLinkDirectories
- Link libraries to targets with their full path (if it is known)
- Dirs specified with link_directories command still added with -L
- Make link type specific to library names without paths
(name libfoo.a without path becomes -Wl,-Bstatic -lfoo)
- Make directory ordering specific to a runtime path computation feature
(look for conflicting SONAMEs instead of library names)
- Implement proper rpath support on HP-UX and AIX.
2008-01-22 09:13:04 -05:00
Brad King
433099ecdd
ENH: Converted cmMakefile DefineFlags added by ADD_DEFINITIONS command into a COMPILE_DEFINITIONS directory property.
2008-01-17 19:29:43 -05:00
Brad King
80c2be45e0
ENH: Renamed <CONFIG>_COMPILE_DEFINITIONS to COMPILE_DEFINITIONS_<CONFIG> for better documentation clarity.
2008-01-15 21:02:00 -05:00
Brad King
75a02152c2
COMP: Fix warning about backslash at end of c++ comment.
2008-01-14 11:07:05 -05:00
Brad King
8262ccfd4e
ENH: Create COMPILE_DEFINITIONS property for targets and source files. Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators.
2008-01-14 09:20:58 -05:00
Bill Hoffman
d92d51429e
BUG: fix for bug 6193, fix xcode depend helper
2008-01-10 15:17:23 -05:00
Brad King
8769444beb
BUG: Revert previous change until it works on all OSX versions.
2007-12-23 13:16:21 -05:00
Brad King
a7245e4792
ENH: Simplify target-level dependencies by depending only on directly linked targets instead of those chained.
2007-12-22 14:17:07 -05:00
Brad King
3cf3bb664a
ENH: Make static library targets depend on targets to which they "link" for the purpose of build ordering. This makes the build order consistent for static and shared library builds. It is also useful when custom command inputs of one library are generated as custom commands outputs of another. It may be useful in the future for Fortran module dependencies. Implemented for Makefiles, Xcode, and VS 8 and above. Added sample code to do it for VS 7.1 and below, but left it disabled with comments explaining why. Likely it will never be needed on VS 7.1 or below anyway.
2007-12-21 15:04:06 -05:00
Brad King
872553de7e
ENH: Implemented generation of display for pre-build, pre-link, and post-build custom command comments during the build. This addresses issue #5353 .
2007-12-18 09:50:08 -05:00
Brad King
4c87af30b2
BUG: Remove stray debugging message.
2007-12-17 19:48:13 -05:00
Ken Martin
cc6f53b61f
ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now
2007-10-22 13:28:49 -04:00
David Cole
8e4c7b99e1
ENH: Finish up the Framework creation code restructuring. Frameworks build and install now. More work needed on the packaging step. See Tests/Framework for example use.
2007-10-10 11:06:15 -04:00
Bill Hoffman
267fd538d8
ENH: fix build issue with config type not being specified by ctest
2007-09-17 10:40:57 -04:00
Brad King
782c5c270f
COMP: Fix shadowed local warning by scoping the previous decl properly.
2007-09-13 09:14:46 -04:00
Brad King
f2ac53bb10
ENH: Added XCODE_ATTRIBUTE_<an-attribute> property to allow direct setting of Xcode target attributes in generated projects. For example, one may set the prefix header property and the corresponding precompiled option to do precompiled headers.
2007-09-10 10:22:19 -04:00
David Cole
b867a85213
STYLE: Fix line length style errors introduced last week.
2007-08-20 11:03:16 -04:00
David Cole
fa61182de8
ENH: Improvements to the Xcode generator. Build frameworks using native Copy 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.
2007-08-14 11:45:15 -04:00
David Cole
ee91e25499
BUG: Only pay attention to the FRAMEWORK target property for SHARED library targets
2007-08-01 13:04:45 -04:00
Alexander Neundorf
43de8c8628
ENH: add OPTIONAL keyword to ENABLE_LANGUAGE, so it will be possible to do
...
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
2007-06-28 09:09:26 -04:00
Brad King
35936433e1
ENH: Merging changes from branch CMake-SourceFile2-b between tags
...
CMake-SourceFile2-bp and CMake-SourceFile2-b-mp1 to trunk. This
commit is surrounded by tags CMake-SourceFile2-b-mp1-pre and
CMake-SourceFile2-b-mp1-post on the trunk.
The changes re-implement cmSourceFile and the use of it to allow
instances to be created much earlier. The use of cmSourceFileLocation
allows locating a source file referenced by a user to be much simpler
and more robust. The two SetName methods are no longer needed so some
duplicate code has been removed. The strange "SourceName" stuff is
gone. Code that created cmSourceFile instances on the stack and then
sent them to cmMakefile::AddSource has been simplified and converted
to getting cmSourceFile instances from cmMakefile. The CPluginAPI has
preserved the old API through a compatibility interface.
Source lists are gone. Targets now get real instances of cmSourceFile
right away instead of storing a list of strings until the final pass.
TraceVSDependencies has been re-written to avoid the use of
SourceName. It is now called TraceDependencies since it is not just
for VS. It is now implemented with a helper object which makes the
code simpler.
2007-06-18 11:59:23 -04:00
Brad King
fac5d4845a
BUG: Finished previous fix.
2007-05-28 17:49:03 -04:00
Brad King
b4fb25941a
COMP: Fixed shadowed local warning.
2007-05-28 13:46:10 -04:00
Brad King
60f02a27db
ENH: Remove unused build rules from Xcode. This change was made in the VS generators on 2006-03-23 and should have been made for the Xcode generator too. Also commented out some debug print statements.
2007-05-28 11:16:50 -04:00
Brad King
14d50b086f
COMP: Fix build of XCode generator after change to GetSourceFiles signature.
2007-05-28 11:02:45 -04:00
Bill Hoffman
d0f12061c3
ENH: add copy header stuff
2007-05-24 17:06:32 -04:00
Brad King
ea44d68cb6
BUG: Need to use GetRealDependency for custom command file-level dependencies.
2007-05-23 17:21:08 -04:00
Brad King
ba7780a3c4
ENH: Fixed INSTALL_FILES and INSTALL_PROGRAMS commands to not create targets. No targets of type cmTarget::INSTALL_FILES or cmTarget::INSTALL_PROGRAMS are created, so we do not need to check for them everywhere anymore.
2007-05-23 15:40:12 -04:00
Alexander Neundorf
4878c00905
ENH: add the IMPORT keyword to ADD_EXECUTABLE(), which generates an
...
"imported" executable target. This can then be used e.g. with
ADD_CUSTOM_COMMAND() to generate stuff. It adds a second container for
"imported" targets, and FindTarget() now takes an additional argument bool
useImportedTargets to specify whether you also want to search in the
imported targets or only in the "normal" targets.
Alex
2007-05-22 10:24:59 -04:00
Alexander Neundorf
e4b5de6377
STYLE: fix line lengths
...
Alex
2007-05-14 11:23:37 -04:00
Brad King
6c421971b9
BUG: Fixed generation of XCODE_DEPEND_HELPER.make into proper directory. Cleaned up duplicate code created by recent changes.
2007-05-11 13:52:33 -04:00
Alexander Neundorf
362f81981e
STYLE: fix line length
...
Alex
2007-05-10 11:38:23 -04:00
Bill Hoffman
8c39efe854
ENH: make sure escaping is done for strings on the command line
2007-05-10 11:16:06 -04:00
Bill Hoffman
3e3413dadc
ENH: fix for move of trace depends
2007-05-10 10:05:36 -04:00
Andy Cedilnik
181f4cb0af
ENH: fix for older xcode and framework create
2007-05-09 10:28:32 -04:00
Alexander Neundorf
7f11536704
ENH: now target names can be used in add_custom_command() and
...
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
2007-05-09 08:25:45 -04:00
Bill Hoffman
5af3105021
ENH: getting closer
2007-05-08 16:37:18 -04:00
Bill Hoffman
2ed6191fce
ENH: add initial xcode framework stuff
2007-05-08 15:49:54 -04:00
Bill Hoffman
5ed2141d12
ENH: make sure default /System framework is not added with -F
2007-03-30 10:53:02 -04:00
Brad King
0e15f3412f
COMP: Restored shared local variable removed by previous change.
2007-03-27 23:15:59 -04:00
Brad King
af95f61d76
ENH: Created method cmTarget::GetExportMacro to centralize computation of the export symbol name. This removes duplicate code from all the generators. Also enabled the export definition for executable targets with the ENABLE_EXPORTS property set.
2007-03-27 23:13:25 -04:00
Ken Martin
c53b26baf2
ENH: some more cleanup
2007-03-13 15:18:27 -04:00
Ken Martin
55603ea9eb
COMP: XCode fix
2007-03-12 11:32:10 -04:00
Brad King
789a0f8359
ENH: Removed unused variables LibraryOutputPath and ExecutableOutputPath. Each target is asked for its own output directory. This is a step towards bug#2240.
2007-03-08 15:24:01 -05:00
Brad King
073076e0f7
COMP: Fix ConvertToRelativePath change for Xcode generator.
2007-03-07 16:32:29 -05:00
Bill Hoffman
7a13c7affe
BUG: fix for quotes in strings for flags #4022
2007-02-21 14:01:19 -05:00
Bill Hoffman
d5cb0f48b7
ENH: fix source extensions fror txt on xcode
2007-02-20 13:52:29 -05:00
Bill Hoffman
d712e40d36
ENH: fix for force language stuff
2007-02-20 11:14:41 -05:00
Bill Hoffman
797a7f50a2
ENH: use project not target name
2007-02-19 15:07:31 -05:00
Bill Hoffman
63e2a9dffa
ENH: fix for external object test
2007-02-17 11:43:47 -05:00
Bill Hoffman
66523061d0
ENH: remove warnings and debug statement
2007-02-17 08:38:41 -05:00
Bill Hoffman
ca0230a33e
ENH: check in initial conv library stuff
2007-02-16 16:12:17 -05:00
Bill Hoffman
5330a03994
ENH: allow for -gdwarf-2 to be in cflags or cxxflags for xcode
2006-10-13 11:53:12 -04:00
Bill Hoffman
052cb7753b
ENH: undo bad changes
2006-10-12 17:19:57 -04:00
Bill Hoffman
107e01c8dc
ENH: fix for bug -gdwarf getting removed
2006-10-12 10:57:36 -04:00
Brad King
c0326d0d54
ENH: Simplify code by removing redundant check against BUILD_WITH_INSTALL_RPATH.
2006-10-11 12:41:17 -04:00
Bill Hoffman
21f3a18bee
ENH: fix failing tests on mac
2006-09-29 16:14:34 -04:00
Brad King
7d2de52c1a
ENH: Cleaned up signature of cmMakefile::AddUtilityCommand. It is not valid to have an output from a utility rule and no calls to the method asked for an output anyway. The argument has been removed.
2006-09-28 13:55:26 -04:00
Brad King
dd332a00cc
ENH: Re-implemented command line argument shell quoting to support several platforms with one code base.
2006-09-27 13:43:46 -04:00
Brad King
b9fc06735d
BUG: Enabled use of EscapeForShell to properly escape custom command lines. This addresses bug#3786 for Xcode.
2006-09-21 16:10:47 -04:00
Bill Hoffman
78275f1d4b
ENH: do not use OBJROOT or you can get two copies of executables
2006-08-14 17:02:34 -04:00
Brad King
d3e8ef705e
BUG: Set GCC_SYMBOLS_PRIVATE_EXTERN and GCC_INLINES_ARE_PRIVATE_EXTERN attributes on all projects to prevent -fvisibility=hidden flags. This is needed to make RTTI work by default.
2006-07-27 15:02:35 -04:00
Bill Hoffman
1fa5f76e40
BUG: fix for bug 3417
2006-06-16 14:02:03 -04:00
Ken Martin
8e9a6beccc
ENH: centralized locaiton of CMakeFiles setting
2006-06-14 12:28:32 -04:00
Brad King
87d4d0e039
BUG: cmGlobalGenerator::Build should not always use the /fast target name 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.
2006-06-01 15:51:24 -04:00
Bill Hoffman
43fd40fe21
ENH: fix warning
2006-05-16 13:23:22 -04:00
Bill Hoffman
0883dee7f0
ENH: fix rebuild problem with xcode and universal binaries
2006-05-16 09:54:49 -04:00
Ken Martin
80f71359c1
STYLE: fix line length
2006-05-11 15:39:46 -04:00
Ken Martin
bf0cb4d49a
STYLE: fix line length
2006-05-11 11:47:03 -04:00
Brad King
d5719f22c1
ENH: Added support for multiple outputs generated by a single custom command. For Visual Studio generators the native tool provides support. For Xcode and Makefile generators a simple trick is used. The first output is considered primary and has the build rule attached. Other outputs simply depend on the first output with no build rule. During cmake_check_build_system CMake detects when a secondary output is missing and removes the primary output to make sure all outputs are regenerated. This approach always builds the custom command at the right time and only once even during parallel builds.
2006-04-11 11:06:19 -04:00
Bill Hoffman
e4f3568099
ENH: fix so all configurations show up
2006-04-10 11:39:32 -04:00
Bill Hoffman
71505ff2d2
ENH: fix spaces in path for xcode
2006-04-03 17:54:37 -04:00
Bill Hoffman
ae10b3578d
ENH: add a wrapper for xcodebuild to get around bug and verbose output
2006-03-31 13:17:23 -05:00
Andy Cedilnik
c2da475507
ENH: Use PBXResourcesBuildPhase for resrources
2006-03-29 16:34:52 -05:00
Andy Cedilnik
5076590a02
ENH: Simplify. Instead of doing ../MacOS just copy to current directory
2006-03-29 16:25:24 -05:00
Andy Cedilnik
32ec28ad00
ENH: Add copy stages for bundle files
2006-03-29 15:02:35 -05:00
Bill Hoffman
f7c1723135
ENH: add support for universal binaries
2006-03-24 09:15:05 -05:00
Bill Hoffman
5208004560
ENH: fix up this changes for mac
2006-03-15 12:02:34 -05:00
Ken Martin
da279f0041
BUG: some UNIX fixes for my m_ commit
2006-03-15 11:38:47 -05:00
Ken Martin
3d96e52261
STYLE: some m_ to this-> cleanup
2006-03-15 11:02:08 -05:00
Brad King
93c95f1cc5
BUG: Fixed installation of MacOSX Bundle executables and the corresponding 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.
2006-03-03 12:58:48 -05:00
Andy Cedilnik
07260a6f27
ENH: Cleanup global targets even more and potentially fix Xcode
2006-03-01 08:28:39 -05:00
Andy Cedilnik
c4156b4531
COMP: Even more global target fixes
2006-02-24 17:35:35 -05:00
Brad King
586a9427d3
ENH: Created target property INSTALL_NAME_DIR initalized by CMAKE_INSTALL_NAME_DIR specifying the directory portion of the OSX install_name field in shared libraries. This is the OSX equivalent of RPATH.
2006-02-24 13:13:14 -05:00
Brad King
576f0b65c7
BUG: Fix generation of Xcode 2.0 and earlier projects to use CMAKE_BUILD_TYPE.
2006-02-24 11:13:31 -05:00
Brad King
f437c8e888
BUG: Treat GLOBAL_TARGET like UTILITY for generation.
2006-02-24 11:07:04 -05:00
Brad King
3fa4a95f56
BUG: Xcode generator should use local generator computation of include directories.
2006-02-20 09:54:25 -05:00
Brad King
c21287552b
ENH: Switched order of slash and configuration name in cmGlobalGenerator::AppendDirectoryForConfig method to increase flexibility.
2006-02-19 19:28:53 -05:00
Bill Hoffman
55dd61946b
ENH: working directory working for XCode
2006-02-08 14:12:34 -05:00
Bill Hoffman
347c5f4b46
ENH: add working directory support
2006-02-08 10:58:36 -05:00
Brad King
afa8367885
BUG: Fixed cmTarget::GetFullPath to not append the configuration name when only one configuration is built. It now asks the generator what subdirectory if any to use for a given configuration name.
2006-02-03 11:36:11 -05:00
Bill Hoffman
07ef88c985
ENH: add COMPILE_FLAGS to targets
2006-01-25 08:38:06 -05:00
Brad King
8f1413e247
COMP: Fixed shadowed variable warning.
2006-01-14 10:27:04 -05:00