View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002240CMakeCMakepublic2005-09-15 10:522007-03-12 10:24
ReporterMarco Spatz 
Assigned ToBrad King 
PrioritylowSeverityfeatureReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0002240: Possibitlity to put targets in different directories
DescriptionIt should be possibly to tell the directory where a target should be put in
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0005187)
Brad King (manager)
2006-10-04 15:39

For build:

You can set the LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH variables to control the location of targets. They take effect on a per-directory basis.


For install:

The INSTALL command allows per-target installation to arbitrary directories.
(0006288)
Ken Martin (developer)
2007-01-30 12:17

The ability to more specifically put targets into directories that what CMake currently supports is probably more of a 2 priority, not a 5.
(0006342)
Brad King (manager)
2007-02-05 10:15

Bug 0004210 is related. It points out that .dll files should be built in the EXECUTABLE_OUTPUT_PATH not the LIBRARY_OUTPUT_PATH.
(0006690)
Brad King (manager)
2007-03-08 14:58

The following changes are an incremental step to implementing this feature. They remove use of local variables in some of the generators to store the output paths and instead ask each target where it should go. The targets themselves currently compute their own output path using the previous convention.

/cvsroot/CMake/CMake/Source/cmLocalUnixMakefileGenerator3.cxx,v <-- cmLocalUnixMakefileGenerator3.cxx
new revision: 1.200; previous revision: 1.199
/cvsroot/CMake/CMake/Source/cmLocalUnixMakefileGenerator3.h,v <-- cmLocalUnixMakefileGenerator3.h
new revision: 1.69; previous revision: 1.68
/cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.cxx,v <-- cmLocalVisualStudio7Generator.cxx
new revision: 1.176; previous revision: 1.175
/cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.h,v <-- cmLocalVisualStudio7Generator.h
new revision: 1.35; previous revision: 1.34
/cvsroot/CMake/CMake/Source/cmMakefileExecutableTargetGenerator.cxx,v <-- cmMakefileExecutableTargetGenerator.cxx
new revision: 1.28; previous revision: 1.27
/cvsroot/CMake/CMake/Source/cmMakefileLibraryTargetGenerator.cxx,v <-- cmMakefileLibraryTargetGenerator.cxx
new revision: 1.33; previous revision: 1.32
/cvsroot/CMake/CMake/Source/cmMakefileTargetGenerator.cxx,v <-- cmMakefileTargetGenerator.cxx
new revision: 1.57; previous revision: 1.56
/cvsroot/CMake/CMake/Source/cmTarget.cxx,v <-- cmTarget.cxx
new revision: 1.125; previous revision: 1.124
/cvsroot/CMake/CMake/Source/cmTarget.h,v <-- cmTarget.h
new revision: 1.74; previous revision: 1.73
(0006691)
Brad King (manager)
2007-03-08 15:16

Minor fix to previous changes:

/cvsroot/CMake/CMake/Source/cmTarget.cxx,v <-- cmTarget.cxx
new revision: 1.126; previous revision: 1.125
(0006692)
Brad King (manager)
2007-03-08 15:24

Same change for Xcode:

/cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.cxx,v <-- cmGlobalXCodeGenerator.cxx
new revision: 1.137; previous revision: 1.136
/cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.h,v <-- cmGlobalXCodeGenerator.h
new revision: 1.45; previous revision: 1.44
(0006693)
Brad King (manager)
2007-03-08 15:33

More incremental changes:

/cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.cxx,v <-- cmLocalVisualStudio7Generator.cxx
new revision: 1.177; previous revision: 1.176
/cvsroot/CMake/CMake/Source/cmMakefileExecutableTargetGenerator.cxx,v <-- cmMakefileExecutableTargetGenerator.cxx
new revision: 1.29; previous revision: 1.28
/cvsroot/CMake/CMake/Source/cmMakefileLibraryTargetGenerator.cxx,v <-- cmMakefileLibraryTargetGenerator.cxx
new revision: 1.34; previous revision: 1.33
/cvsroot/CMake/CMake/Source/cmMakefileTargetGenerator.cxx,v <-- cmMakefileTargetGenerator.cxx
new revision: 1.58; previous revision: 1.57
/cvsroot/CMake/CMake/Source/cmTarget.cxx,v <-- cmTarget.cxx
new revision: 1.127; previous revision: 1.126
/cvsroot/CMake/CMake/Source/cmTarget.h,v <-- cmTarget.h
new revision: 1.75; previous revision: 1.74
(0006706)
Brad King (manager)
2007-03-09 14:50

Fix for using cmTarget::GetDirectory() for the location of OSX bundles:

/cvsroot/CMake/CMake/Source/cmMakefileExecutableTargetGenerator.cxx,v <-- cmMakefileExecutableTargetGenerator.cxx
new revision: 1.30; previous revision: 1.29
(0006708)
Brad King (manager)
2007-03-09 15:17

I've added target properties ARCHIVE_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_DIRECTORY, and RUNTIME_OUTPUT_DIRECTORY which allow target files to be distributed in the build tree with fine granularity just like the INSTALL command allows for the install tree. When set on a specific target they override the per-directory variables EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH.

/cvsroot/CMake/CMake/Source/cmTarget.cxx,v <-- cmTarget.cxx
new revision: 1.129; previous revision: 1.128
/cvsroot/CMake/CMake/Source/cmTarget.h,v <-- cmTarget.h
new revision: 1.77; previous revision: 1.76
(0006715)
Brad King (manager)
2007-03-12 10:24

Added test for this feature:

/cvsroot/CMake/CMake/Tests/Complex/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.67; previous revision: 1.66
/cvsroot/CMake/CMake/Tests/Complex/Executable/complex.cxx,v <-- complex.cxx
new revision: 1.91; previous revision: 1.90
/cvsroot/CMake/CMake/Tests/Complex/Library/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.41; previous revision: 1.40
/cvsroot/CMake/CMake/Tests/SimpleInstall/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.72; previous revision: 1.71

 Issue History
Date Modified Username Field Change


Copyright © 2000 - 2018 MantisBT Team