View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0010735CMakeCMakepublic2010-05-19 19:252011-01-11 18:05
Reporterhsor001 
Assigned ToDavid Cole 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionduplicate 
PlatformOSOS Version
Product VersionCMake-2-8 
Target VersionFixed in Version 
Summary0010735: Passing Paths containing colons through ExternalProject_Add's CMAKE_ARGS argument
Description
This is only relevant to the first argument passed through the CMAKE_ARGS argument of ExternalProject_Add. If the first argument passed is a path (for example) and this path contains a colon, as in 'd:/path/to/somewhere' all that will be passed through is 'd:'

I have an example that I have put together to illustrate this problem. If you decompress and untar the attached tar.gz file you should be able to see for yourself. I have highlighted the message output by wrapping the relevant messages in ??????????????????????? so it should make things easy to spot. also if you execute the application that is built it will also display the problem paths.

I won't bother myself explaining to you how to run cmake, but if I have done anything wrong I am happy to help.

I have tested this on windows only, as this is the place where I use colons in paths.
TagsNo tags attached.
Attached Filesgz file icon externalproject_add_test.tar.gz [^] (1,154 bytes) 2010-05-19 19:25

 Relationships
duplicate of 0009963closedDavid Cole Passing command-line arguments to ExternalProject truncates variables 

  Notes
(0021095)
David Cole (manager)
2010-06-18 17:24

I get the following output:

2> -- ??????????????????????????????
2> -- FOO PATH_1: D:/I/like/this/:path/foo_here
2> -- FOO PATH_2: F:/this/path/is/a/backup/foo_here
2> -- ??????????????????????????????

which is what it should be, right?

What version of CMake were you reporting this for? It works with 2.8.1 and later...
(0021100)
hsor001 (reporter)
2010-06-20 19:25

Your output is correct, but mine is different I get the following (I have included the entire output here from a windows 7 visual studio command prompt):

D:\development\cmiss\temp\externalproject_add_test\build>"c:\Program Files\CMake 2.8.2\bin\cmake.exe" -G "NMake Makefiles" ../
-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1500
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/development/cmiss/temp/externalproject_add_test/build

D:\development\cmiss\temp\externalproject_add_test\build>nmake

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.

Scanning dependencies of target build_foo
[ 0%] Creating directories for 'build_foo'
[ 0%] Performing download step (verify and extract) for 'build_foo'
-- verifying file...
     file='D:/development/cmiss/temp/externalproject_add_test/foo_project/foo_project.tar.gz'
-- verifying file... warning: did not verify file - no URL_MD5 checksum argument? corrupt file?
-- extracting...
     src='D:/development/cmiss/temp/externalproject_add_test/foo_project/foo_project.tar.gz'
     dst='D:/development/cmiss/temp/externalproject_add_test/build/src/build_foo'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 0%] No update step for 'build_foo'
[ 0%] No patch step for 'build_foo'
[ 0%] Performing configure step for 'build_foo'
-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1500
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- ??????????????????????????????
-- FOO PATH_1: D:
-- FOO PATH_2: F:/this/path/is/a/backup/foo_here
-- ??????????????????????????????
-- Configuring done
-- Generating done
-- Build files have been written to: D:/development/cmiss/temp/externalproject_add_test/build/src/build_foo-build
[ 0%] Performing build step for 'build_foo'

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.

Scanning dependencies of target foo_it
[100%] Building CXX object CMakeFiles/foo_it.dir/main.cpp.obj
main.cpp
Linking CXX executable foo_it.exe
[100%] Built target foo_it
[ 0%] Performing install step for 'build_foo'

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.

[100%] Built target foo_it
Install the project...
-- Install configuration: "Debug"
-- Installing: D:/development/cmiss/temp/externalproject_add_test/build/foo_it.exe
[ 0%] Completed 'build_foo'
[100%] Built target build_foo
(0021101)
hsor001 (reporter)
2010-06-20 19:34

I do get the correct output however when using visual studio, but not when using nmake. Sorry I didn't explain it fully on the first post but I didn't think you could use visual studio with external project, or rather I didn't think it was sensible to. The above note should explain exactly how I manifest this issue.
(0021121)
David Cole (manager)
2010-06-22 11:23

This is nmake (or maybe more makes) specific and requires double quotes in the generated makefile. The fix for this is going to be to add ":" as a "quote-able" character in:

CMake/Source/kwsys/System.c
probably in the kwsysSystem_Shell__CharNeedsQuotesOnWindows function

You can try that on a local build of CMake to see if it fixes this issue for you. The code to fix it is in a lower-level kwsys source file, which is shared by other projects in addition to CMake. I can commit a fix to the main kwsys CVS repo after the CMake 2.8.2 release. After that, it will automatically be picked up for the following CMake release...
(0022144)
David Cole (manager)
2010-09-08 17:46

dup of 9963 -- when that one is fixed, this one will be too
(0022186)
David Cole (manager)
2010-09-10 19:00

Related issue 0009963 is now resolved; fixed in CMake 'next'; this one should be too...
(0024603)
David Cole (manager)
2011-01-11 18:05

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

 Issue History
Date Modified Username Field Change
2010-05-19 19:25 hsor001 New Issue
2010-05-19 19:25 hsor001 File Added: externalproject_add_test.tar.gz
2010-05-19 21:32 Bill Hoffman Status new => assigned
2010-05-19 21:32 Bill Hoffman Assigned To => David Cole
2010-06-18 17:24 David Cole Note Added: 0021095
2010-06-18 17:24 David Cole Status assigned => resolved
2010-06-18 17:24 David Cole Resolution open => unable to reproduce
2010-06-20 19:25 hsor001 Note Added: 0021100
2010-06-20 19:25 hsor001 Status resolved => feedback
2010-06-20 19:25 hsor001 Resolution unable to reproduce => reopened
2010-06-20 19:34 hsor001 Note Added: 0021101
2010-06-22 11:23 David Cole Note Added: 0021121
2010-07-23 06:10 David Cole Relationship added duplicate of 0009963
2010-09-08 17:46 David Cole Note Added: 0022144
2010-09-08 17:46 David Cole Status feedback => resolved
2010-09-08 17:46 David Cole Resolution reopened => duplicate
2010-09-10 19:00 David Cole Note Added: 0022186
2011-01-11 18:05 David Cole Note Added: 0024603
2011-01-11 18:05 David Cole Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team