Merge pull request #7598 from Neumann-A/path_separator

[vcpkg] QoL: add host specific path separator to common definitions
This commit is contained in:
Robert Schumacher 2019-11-22 09:45:33 -08:00 committed by GitHub
commit 8831e8f25f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 22 deletions

View File

@ -29,19 +29,11 @@ function(vcpkg_add_to_path)
if(NOT "${ARGC}" STREQUAL "2")
message(FATAL_ERROR "Expected second argument.")
endif()
if(CMAKE_HOST_WIN32)
set(ENV{PATH} "${ARGV1};$ENV{PATH}")
else()
set(ENV{PATH} "${ARGV1}:$ENV{PATH}")
endif()
set(ENV{PATH} "${ARGV1}${VCPKG_HOST_PATH_SEPARATOR}$ENV{PATH}")
else()
if(NOT "${ARGC}" STREQUAL "1")
message(FATAL_ERROR "Unexpected second argument: ${ARGV1}")
endif()
if(CMAKE_HOST_WIN32)
set(ENV{PATH} "$ENV{PATH};${ARGV0}")
else()
set(ENV{PATH} "$ENV{PATH}:${ARGV0}")
endif()
set(ENV{PATH} "$ENV{PATH}${VCPKG_HOST_PATH_SEPARATOR}${ARGV0}")
endif()
endfunction()

View File

@ -74,15 +74,10 @@ function(vcpkg_build_cmake)
if(_bc_ADD_BIN_TO_PATH)
set(_BACKUP_ENV_PATH "$ENV{PATH}")
if(CMAKE_HOST_WIN32)
set(_PATHSEP ";")
else()
set(_PATHSEP ":")
endif()
if(BUILDTYPE STREQUAL "debug")
set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/bin${_PATHSEP}$ENV{PATH}")
vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/bin")
else()
set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin${_PATHSEP}$ENV{PATH}")
vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")
endif()
endif()

View File

@ -65,6 +65,7 @@ function(vcpkg_build_qmake)
run_jom(qmake_all makefiles ${_short_name_${_buildname}})
endif()
run_jom("${_csc_${_buildname}_TARGETS}" ${_csc_BUILD_LOGNAME} ${_short_name_${_buildname}})
unset(_BUILD_PREFIX)
endforeach()
# Restore the original value of ENV{PATH}

View File

@ -5,6 +5,7 @@
## ## The following variables are available:
## ```cmake
## VCPKG_TARGET_IS_<target> with <target> being one of the following: WINDOWS, UWP, LINUX, OSX, ANDROID, FREEBSD. only defined if <target>
## VCPKG_HOST_PATH_SEPARATOR Host specific path separator (USAGE: "<something>${VCPKG_HOST_PATH_SEPARATOR}<something>"; only use and pass variables with VCPKG_HOST_PATH_SEPARATOR within "")
## VCPKG_HOST_EXECUTABLE_SUFFIX executable suffix of the host
## VCPKG_TARGET_EXECUTABLE_SUFFIX executable suffix of the target
## VCPKG_TARGET_STATIC_LIBRARY_PREFIX static library prefix for target (same as CMAKE_STATIC_LIBRARY_PREFIX)
@ -38,6 +39,13 @@ elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
set(VCPKG_TARGET_IS_FREEBSD 1)
endif()
#Helper variable to identify the host path separator.
if(CMAKE_HOST_WIN32)
set(VCPKG_HOST_PATH_SEPARATOR ";")
elseif(CMAKE_HOST_UNIX)
set(VCPKG_HOST_PATH_SEPARATOR ":")
endif()
#Helper variables to identify executables on host/target
if(CMAKE_HOST_WIN32)
set(VCPKG_HOST_EXECUTABLE_SUFFIX ".exe")

View File

@ -72,14 +72,11 @@ function(vcpkg_configure_cmake)
endif()
if(CMAKE_HOST_WIN32)
set(_PATHSEP ";")
if(DEFINED ENV{PROCESSOR_ARCHITEW6432})
set(_csc_HOST_ARCHITECTURE $ENV{PROCESSOR_ARCHITEW6432})
else()
set(_csc_HOST_ARCHITECTURE $ENV{PROCESSOR_ARCHITECTURE})
endif()
else()
set(_PATHSEP ":")
endif()
set(NINJA_CAN_BE_USED ON) # Ninja as generator
@ -154,7 +151,7 @@ function(vcpkg_configure_cmake)
if(GENERATOR STREQUAL "Ninja")
vcpkg_find_acquire_program(NINJA)
get_filename_component(NINJA_PATH ${NINJA} DIRECTORY)
set(ENV{PATH} "$ENV{PATH}${_PATHSEP}${NINJA_PATH}")
vcpkg_add_to_path("${NINJA_PATH}")
list(APPEND _csc_OPTIONS "-DCMAKE_MAKE_PROGRAM=${NINJA}")
endif()
@ -265,7 +262,7 @@ function(vcpkg_configure_cmake)
vcpkg_find_acquire_program(NINJA)
get_filename_component(NINJA_PATH ${NINJA} DIRECTORY)
set(ENV{PATH} "$ENV{PATH}${_PATHSEP}${NINJA_PATH}")
vcpkg_add_to_path("${NINJA_PATH}")
#parallelize the configure step
set(_contents