@@ -6,47 +6,50 @@ macro(run_vcpkg)
66 # optional named VCPKG_DIR and VCPKG_URL argument
77 set (oneValueArgs VCPKG_DIR VCPKG_URL)
88 cmake_parse_arguments (
9- project_options
10- ""
9+ _vcpkg_args
10+ "${options} "
1111 "${oneValueArgs} "
1212 ""
1313 ${ARGN} )
1414
15- if (${ProjectOptions_VCPKG_DIR} )
15+ if (NOT " ${_vcpkg_args_VCPKG_DIR} " STREQUAL "" )
1616 # the installation directory is specified
17- get_filename_component (VCPKG_PARENT_DIR ${ProjectOptions_VCPKG_DIR } DIRECTORY )
17+ get_filename_component (VCPKG_PARENT_DIR ${_vcpkg_args_VCPKG_DIR } DIRECTORY )
1818 else ()
1919 # Default vcpkg installation directory
2020 if (WIN32 )
2121 set (VCPKG_PARENT_DIR $ENV{userprofile} )
22- set (ProjectOptions_VCPKG_DIR ${VCPKG_PARENT_DIR} /vcpkg)
22+ set (_vcpkg_args_VCPKG_DIR ${VCPKG_PARENT_DIR} /vcpkg)
2323 else ()
2424 set (VCPKG_PARENT_DIR $ENV{HOME} )
25- set (ProjectOptions_VCPKG_DIR ${VCPKG_PARENT_DIR} /vcpkg)
25+ set (_vcpkg_args_VCPKG_DIR ${VCPKG_PARENT_DIR} /vcpkg)
2626 endif ()
2727 endif ()
2828
29- # check if the vcpkg is installed
30- if (EXISTS ${ProjectOptions_VCPKG_DIR} )
31- message (STATUS "${ProjectOptions_VCPKG_DIR} already exists." )
32- if (${ProjectOptions_ENABLE_VCPKG_UPDATE} )
29+ # check if vcpkg is installed
30+ if (WIN32 AND "${CMAKE_EXECUTABLE_SUFFIX} " STREQUAL "" )
31+ set (CMAKE_EXECUTABLE_SUFFIX ".exe" )
32+ endif ()
33+ if (EXISTS "${_vcpkg_args_VCPKG_DIR} " AND EXISTS "${_vcpkg_args_VCPKG_DIR} /vcpkg${CMAKE_EXECUTABLE_SUFFIX} " )
34+ message (STATUS "vcpkg is already installed at ${_vcpkg_args_VCPKG_DIR} ." )
35+ if (${_vcpkg_args_ENABLE_VCPKG_UPDATE} )
3336 message (STATUS "Updating the repository..." )
34- execute_process (COMMAND "git" "pull" WORKING_DIRECTORY ${ProjectOptions_VCPKG_DIR } )
37+ execute_process (COMMAND "git" "pull" WORKING_DIRECTORY ${_vcpkg_args_VCPKG_DIR } )
3538 endif ()
3639 else ()
37- message (STATUS "Installing vcpkg at ${ProjectOptions_VCPKG_DIR } " )
40+ message (STATUS "Installing vcpkg at ${_vcpkg_args_VCPKG_DIR } " )
3841 # clone vcpkg from Github
39- if (NOT ${ProjectOptions_VCPKG_URL} )
40- set (ProjectOptions_VCPKG_URL "https://github.com/microsoft/vcpkg.git" )
42+ if (" ${_vcpkg_args_VCPKG_URL} " STREQUAL "" )
43+ set (_vcpkg_args_VCPKG_URL "https://github.com/microsoft/vcpkg.git" )
4144 endif ()
42- execute_process (COMMAND "git" "clone" "${ProjectOptions_VCPKG_URL } " WORKING_DIRECTORY ${VCPKG_PARENT_DIR} )
45+ execute_process (COMMAND "git" "clone" "${_vcpkg_args_VCPKG_URL } " WORKING_DIRECTORY ${VCPKG_PARENT_DIR} )
4346 # Run vcpkg bootstrap
44- execute_process (COMMAND "./vcpkg/bootstrap-vcpkg" WORKING_DIRECTORY "${ProjectOptions_VCPKG_DIR } " )
47+ execute_process (COMMAND "./vcpkg/bootstrap-vcpkg" WORKING_DIRECTORY "${_vcpkg_args_VCPKG_DIR } " )
4548 endif ()
4649
4750 # Setting up vcpkg toolchain
4851 list (APPEND VCPKG_FEATURE_FLAGS "versions" )
4952 set (CMAKE_TOOLCHAIN_FILE
50- ${ProjectOptions_VCPKG_DIR } /scripts/buildsystems/vcpkg.cmake
51- CACHE STRING "Vcpkg toolchain file" )
53+ ${_vcpkg_args_VCPKG_DIR } /scripts/buildsystems/vcpkg.cmake
54+ CACHE STRING "vcpkg toolchain file" )
5255endmacro ()
0 commit comments