vcpkg/toolsrc/CMakeLists.txt

54 lines
1.6 KiB
CMake
Raw Normal View History

2017-11-26 07:53:32 +08:00
cmake_minimum_required(VERSION 3.3)
2018-03-13 20:21:17 +08:00
project(vcpkg C CXX)
2017-11-26 07:53:32 +08:00
OPTION(DEFINE_DISABLE_METRICS "Option for disabling metrics" OFF)
2018-06-09 09:01:35 +08:00
2017-12-15 06:31:16 +08:00
if(CMAKE_COMPILER_IS_GNUXX OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
2017-11-29 05:06:56 +08:00
set(GCC 1)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
2018-03-31 05:46:22 +08:00
if(NOT VCPKG_ALLOW_APPLE_CLANG)
message(FATAL_ERROR
"Building the vcpkg tool requires support for the C++ Filesystem TS.
Apple clang versions 9 and below do not have support for it.
Please install gcc6 or newer from homebrew (brew install gcc6).
If you would like to try anyway, set VCPKG_ALLOW_APPLE_CLANG.")
else()
set(CLANG 1)
endif()
2017-11-29 05:06:56 +08:00
elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
set(CLANG 1)
elseif(MSVC)
add_compile_options(/std:c++latest)
2017-12-15 06:31:16 +08:00
else()
message(FATAL_ERROR "Unknown compiler: ${CMAKE_CXX_COMPILER_ID}")
2017-11-29 05:06:56 +08:00
endif()
if(GCC OR CLANG)
add_compile_options(-std=c++1z)
if(WERROR)
add_compile_options(-Wall -Wno-unknown-pragmas -Werror)
endif()
endif()
2017-11-26 07:53:32 +08:00
file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp)
if (DEFINE_DISABLE_METRICS)
set(DISABLE_METRICS_VALUE "1")
else()
set(DISABLE_METRICS_VALUE "0")
endif()
2018-02-20 04:20:16 +08:00
add_executable(vcpkg src/vcpkg.cpp ${VCPKGLIB_SOURCES})
target_compile_definitions(vcpkg PRIVATE -DDISABLE_METRICS=${DISABLE_METRICS_VALUE})
2018-03-13 20:21:17 +08:00
target_include_directories(vcpkg PRIVATE include)
2017-11-29 02:50:33 +08:00
2017-11-29 05:06:56 +08:00
if(GCC)
2018-03-13 20:21:17 +08:00
target_link_libraries(vcpkg PRIVATE stdc++fs)
2017-11-29 05:06:56 +08:00
elseif(CLANG)
2018-03-13 20:21:17 +08:00
target_link_libraries(vcpkg PRIVATE c++experimental)
2017-11-29 02:50:33 +08:00
endif()
2018-03-13 20:21:17 +08:00
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(vcpkg PRIVATE Threads::Threads)