View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0014094CMakeModulespublic2013-04-17 04:082014-02-19 11:14
ReporterMarcel Loose 
Assigned ToRobert Maynard 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformLinuxOSUbuntu OS Version12.10
Product VersionCMake 2.8.9 
Target VersionFixed in VersionCMake 2.8.12 
Summary0014094: FindCUDA: Marco CUDA_WRAP_SRCS does not de-duplicate entries in CUDA_NVCC_INCLUDE_DIRECTORIES
DescriptionAs of CMake 2.8.8, the INCLUDE_DIRECTORIES() command does not de-duplicate entries. Failure to do so can lead to an extremely long and repetitive list of -I entries on the command line.
Steps To Reproduce1. Make sure you're using cmake 2.8.8 or later
2. Deliberately add duplicate entries using INCLUDE_DIRECTORIES in your project.
3. Add a CUDA executable using CUDA_ADD_EXECUTABLE.
4. Run 'make' with verbose output and check the command line passed to nvcc.
Additional InformationThe attached simple patch solves this issue and should not cause any problems with older cmake versions. The patch is against the cmake 2.8.9 release.
TagsNo tags attached.
Attached Filespatch file icon FindCUDA.cmake.patch [^] (668 bytes) 2013-04-17 04:08 [Show Content]

 Relationships
related to 0012198closedJames Bigler FindCUDA.cmake, INCLUDE_DIRECTORIES, The command line is too long. 
related to 0014758closedKitware Robot Delayed de-duplication of include directories may cause huge memory usage 

  Notes
(0032857)
Brad King (manager)
2013-04-17 08:25

Did CMake < 2.8.8 remove duplicate include directories automatically? The behavior may have changed when the per-target INCLUDE_DIRECTORIES property was added.
(0032891)
Marcel Loose (developer)
2013-04-17 10:06

Yes it did. See http://www.cmake.org/pipermail/cmake/2013-April/054398.html. [^]
It could be that per-target INCLUDE_DIRECTORIES changed that behaviour.
(0032894)
Brad King (manager)
2013-04-17 10:20

For reference:

 http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/46307 [^]
(0032895)
Brad King (manager)
2013-04-17 10:23

Re 0014094:0032891: Okay, as discussed in that thread the de-duplication was moved to generate time. Now in 2.8.11 that is even more necessary because generator expressions can now appear in INCLUDE_DIRECTORIES so we do not even know the whole list of values until generate time.

I think the patch looks like a good solution for now. More work may be needed to support projects that make use of generator expressions in INCLUDE_DIRECTORIES.
(0034061)
Robert Maynard (manager)
2013-10-07 10:09

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2013-04-17 04:08 Marcel Loose New Issue
2013-04-17 04:08 Marcel Loose File Added: FindCUDA.cmake.patch
2013-04-17 04:10 Marcel Loose Summary Marco CUDA_WRAP_SRCS does not de-duplicate entries in CUDA_NVCC_INCLUDE_DIRECTORIES => FindCUDA: Marco CUDA_WRAP_SRCS does not de-duplicate entries in CUDA_NVCC_INCLUDE_DIRECTORIES
2013-04-17 04:11 Marcel Loose Relationship added related to 0012198
2013-04-17 08:25 Brad King Note Added: 0032857
2013-04-17 09:11 Robert Maynard Assigned To => Robert Maynard
2013-04-17 09:11 Robert Maynard Status new => assigned
2013-04-17 10:06 Marcel Loose Note Added: 0032891
2013-04-17 10:20 Brad King Note Added: 0032894
2013-04-17 10:23 Brad King Note Added: 0032895
2013-04-18 15:12 Robert Maynard Status assigned => acknowledged
2013-05-24 09:37 Robert Maynard Status acknowledged => resolved
2013-05-24 09:37 Robert Maynard Fixed in Version => CMake 2.8.12
2013-05-24 09:37 Robert Maynard Resolution open => fixed
2013-10-07 10:09 Robert Maynard Note Added: 0034061
2013-10-07 10:09 Robert Maynard Status resolved => closed
2014-02-19 11:14 David Cole Relationship added related to 0014758


Copyright © 2000 - 2018 MantisBT Team