Fixes for handling quotes in args and other places (Fix Bug 11726 and 12099).

This commit is contained in:
James Bigler 2011-12-05 17:16:05 -07:00
parent e0bc42aa4f
commit c3c7a0cfb8
2 changed files with 21 additions and 21 deletions

View File

@ -707,7 +707,7 @@ find_package_handle_standard_args(CUDA
# Add include directories to pass to the nvcc command. # Add include directories to pass to the nvcc command.
macro(CUDA_INCLUDE_DIRECTORIES) macro(CUDA_INCLUDE_DIRECTORIES)
foreach(dir ${ARGN}) foreach(dir ${ARGN})
list(APPEND CUDA_NVCC_INCLUDE_ARGS_USER "-I${dir}") list(APPEND CUDA_NVCC_INCLUDE_ARGS_USER -I${dir})
endforeach(dir ${ARGN}) endforeach(dir ${ARGN})
endmacro(CUDA_INCLUDE_DIRECTORIES) endmacro(CUDA_INCLUDE_DIRECTORIES)
@ -736,13 +736,13 @@ macro(CUDA_GET_SOURCES_AND_OPTIONS _sources _cmake_options _options)
arg STREQUAL "SHARED" OR arg STREQUAL "SHARED" OR
arg STREQUAL "MODULE" arg STREQUAL "MODULE"
) )
list(APPEND ${_cmake_options} "${arg}") list(APPEND ${_cmake_options} ${arg})
else() else()
if ( _found_options ) if ( _found_options )
list(APPEND ${_options} "${arg}") list(APPEND ${_options} ${arg})
else() else()
# Assume this is a file # Assume this is a file
list(APPEND ${_sources} "${arg}") list(APPEND ${_sources} ${arg})
endif() endif()
endif() endif()
endforeach() endforeach()
@ -890,7 +890,7 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
get_directory_property(CUDA_NVCC_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES) get_directory_property(CUDA_NVCC_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES)
if(CUDA_NVCC_INCLUDE_DIRECTORIES) if(CUDA_NVCC_INCLUDE_DIRECTORIES)
foreach(dir ${CUDA_NVCC_INCLUDE_DIRECTORIES}) foreach(dir ${CUDA_NVCC_INCLUDE_DIRECTORIES})
list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}") list(APPEND CUDA_NVCC_INCLUDE_ARGS -I${dir})
endforeach() endforeach()
endif() endif()
@ -956,7 +956,7 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
# Note that if we ever want CUDA_NVCC_FLAGS_<CONFIG> to be string (instead of a list # Note that if we ever want CUDA_NVCC_FLAGS_<CONFIG> to be string (instead of a list
# like it is currently), we can remove the quotes around the # like it is currently), we can remove the quotes around the
# ${CUDA_NVCC_FLAGS_${config_upper}} variable like the CMAKE_HOST_FLAGS_<CONFIG> variable. # ${CUDA_NVCC_FLAGS_${config_upper}} variable like the CMAKE_HOST_FLAGS_<CONFIG> variable.
set(CUDA_NVCC_FLAGS_CONFIG "${CUDA_NVCC_FLAGS_CONFIG}\nset(CUDA_NVCC_FLAGS_${config_upper} \"${CUDA_NVCC_FLAGS_${config_upper}};;${CUDA_WRAP_OPTION_NVCC_FLAGS_${config_upper}}\")") set(CUDA_NVCC_FLAGS_CONFIG "${CUDA_NVCC_FLAGS_CONFIG}\nset(CUDA_NVCC_FLAGS_${config_upper} ${CUDA_NVCC_FLAGS_${config_upper}} ;; ${CUDA_WRAP_OPTION_NVCC_FLAGS_${config_upper}})")
endforeach() endforeach()
if(compile_to_ptx) if(compile_to_ptx)

View File

@ -55,25 +55,25 @@ if(NOT generated_file)
endif() endif()
# Set these up as variables to make reading the generated file easier # Set these up as variables to make reading the generated file easier
set(CMAKE_COMMAND "@CMAKE_COMMAND@") set(CMAKE_COMMAND "@CMAKE_COMMAND@") # path
set(source_file "@source_file@") set(source_file "@source_file@") # path
set(NVCC_generated_dependency_file "@NVCC_generated_dependency_file@") set(NVCC_generated_dependency_file "@NVCC_generated_dependency_file@") # path
set(cmake_dependency_file "@cmake_dependency_file@") set(cmake_dependency_file "@cmake_dependency_file@") # path
set(CUDA_make2cmake "@CUDA_make2cmake@") set(CUDA_make2cmake "@CUDA_make2cmake@") # path
set(CUDA_parse_cubin "@CUDA_parse_cubin@") set(CUDA_parse_cubin "@CUDA_parse_cubin@") # path
set(build_cubin @build_cubin@) set(build_cubin @build_cubin@) # bool
# We won't actually use these variables for now, but we need to set this, in # We won't actually use these variables for now, but we need to set this, in
# order to force this file to be run again if it changes. # order to force this file to be run again if it changes.
set(generated_file_path "@generated_file_path@") set(generated_file_path "@generated_file_path@") # path
set(generated_file_internal "@generated_file@") set(generated_file_internal "@generated_file@") # path
set(generated_cubin_file_internal "@generated_cubin_file@") set(generated_cubin_file_internal "@generated_cubin_file@") # path
set(CUDA_NVCC_EXECUTABLE "@CUDA_NVCC_EXECUTABLE@") set(CUDA_NVCC_EXECUTABLE "@CUDA_NVCC_EXECUTABLE@") # path
set(CUDA_NVCC_FLAGS "@CUDA_NVCC_FLAGS@;;@CUDA_WRAP_OPTION_NVCC_FLAGS@") set(CUDA_NVCC_FLAGS @CUDA_NVCC_FLAGS@ ;; @CUDA_WRAP_OPTION_NVCC_FLAGS@) # list
@CUDA_NVCC_FLAGS_CONFIG@ @CUDA_NVCC_FLAGS_CONFIG@
set(nvcc_flags "@nvcc_flags@") set(nvcc_flags @nvcc_flags@) # list
set(CUDA_NVCC_INCLUDE_ARGS "@CUDA_NVCC_INCLUDE_ARGS@") set(CUDA_NVCC_INCLUDE_ARGS "@CUDA_NVCC_INCLUDE_ARGS@") # list (needs to be in quotes to handle spaces properly).
set(format_flag "@format_flag@") set(format_flag "@format_flag@") # string
if(build_cubin AND NOT generated_cubin_file) if(build_cubin AND NOT generated_cubin_file)
message(FATAL_ERROR "You must specify generated_cubin_file on the command line") message(FATAL_ERROR "You must specify generated_cubin_file on the command line")