ExternalProject: make SOURCE_SUBDIR directly appendable

This allows it to be used in expansions without being conditional based
on its value.
This commit is contained in:
Ben Boeckel 2016-10-18 10:55:24 -04:00
parent fdce782b61
commit 615f3ed2b4

View File

@ -1087,10 +1087,14 @@ function(_ep_set_directories name)
endforeach()
get_property(source_subdir TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR)
if(NOT source_subdir)
set_property(TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR ".")
set_property(TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR "")
elseif(IS_ABSOLUTE "${source_subdir}")
message(FATAL_ERROR
"External project ${name} has non-relative SOURCE_SUBDIR!")
else()
# Prefix with a slash so that when appended to the source directory, it
# behaves as expected.
set_property(TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR "/${source_subdir}")
endif()
if(build_in_source)
get_property(source_dir TARGET ${name} PROPERTY _EP_SOURCE_DIR)
@ -2257,11 +2261,7 @@ function(_ep_add_configure_command name)
endif()
endif()
if(source_subdir STREQUAL ".")
list(APPEND cmd "${source_dir}")
else()
list(APPEND cmd "${source_dir}/${source_subdir}")
endif()
list(APPEND cmd "${source_dir}${source_subdir}")
endif()
# If anything about the configure command changes, (command itself, cmake