使用vcpkg+cmake的时候需要添加参数:
-DCMAKE_TOOLCHAIN_FILE=C:/work/code/vcpkg/scripts/buildsystems/vcpkg.cmake
命令行:
cmake -S. -Bbuild -DCMAKE_TOOLCHAIN_FILE=C:/work/code/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build
CMake GUI
添加环境变量:
echo %vcpkg_dir%
C:/work/code/vcpkg/
CMakeLists.txt
cmake_minimum_required(VERSION 3.1...3.22)
add_definitions(-D_USE_MATH_DEFINES)
if (POLICY CMP0020)
cmake_policy(SET CMP0020 NEW)
cmake_policy(SET CMP0071 NEW)
endif ()
message(STATUS "VCPKG_DIR: $ENV{VCPKG_DIR}")
if(DEFINED ENV{VCPKG_DIR} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(CMAKE_TOOLCHAIN_FILE $ENV{VCPKG_DIR}/scripts/buildsystems/vcpkg.cmake CACHE STRING "")
endif()
message(STATUS "CMAKE_TOOLCHAIN_FILE: ${CMAKE_TOOLCHAIN_FILE}")
#include(c:/work/code/vcpkg/scripts/buildsystems/vcpkg.cmake)
PROJECT(Test)
set(CMAKE_CXX_STANDARD 17)
find_package(VTK REQUIRED)
find_package(CGAL REQUIRED)
#find_package(Boost REQUIRED)
#find_package(openmesh QUIET)
set(VTK_QT_VERSION 5)
set(qt_components Core Gui Widgets)
list(SORT qt_components)
find_package(Qt${VTK_QT_VERSION} QUIET REQUIRED COMPONENTS ${qt_components})
foreach (_qt_comp IN LISTS qt_components)
list(APPEND qt_modules "Qt${VTK_QT_VERSION}::${_qt_comp}")
endforeach ()
message(STATUS "VTK_VERSION: ${VTK_VERSION}, Qt Version: ${Qt${VTK_QT_VERSION}Widgets_VERSION}")
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
link_directories(lib)
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} include)
file(GLOB UI_FILES src/*.ui)
file(GLOB QT_WRAP src/*.h)
file(GLOB CXX_FILES src/*.cxx)
set(CMAKE_NINJA_FORCE_RESPONSE_FILE "ON" CACHE BOOL "Force Ninja to use response files.")
add_executable(Test MACOSX_BUNDLE ${CXX_FILES} ${UISrcs} ${QT_WRAP} Test.cpp)
target_include_directories(Test PRIVATE ${OPENMESH_INCLUDE_DIRS})
target_link_libraries(Test ${qt_modules} ${VTK_LIBRARIES} ${OPENMESH_LIBRARIES} CGAL::CGAL Driver)
vtk_module_autoinit(TARGETS Test MODULES ${VTK_LIBRARIES})
