File Structure
Just wanted to create a library using third party library, I am using Vcpkg and Cmake
CMakeLists.txt
cmake_minimum_required(VERSION 3.28)
project(Vcpkg)
set (CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
find_package(fmt REQUIRED)
find_package(spdlog REQUIRED)
file(GLOB SOURCES src/*.cpp include/*.hpp)
add_library(Vcpkg SHARED ${SOURCES})
add_library(vcpkg::engine ALIAS Vcpkg)
target_include_directories(Vcpkg
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src)
add_executable(akash ${SOURCES})
SET(GCC_COVERAGE_COMPILE_FLAGS "-g -O0 -coverage -fprofile-arcs -ftest-coverage")
SET(GCC_COVERAGE_LINK_FLAGS "-coverage -lgcov")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}" )
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}" )
target_compile_features(akash PRIVATE cxx_std_20)
target_link_libraries(akash
PRIVATE
vcpkg::engine
fmt::fmt
spdlog::spdlog
)
Error
1/5] Scanning /home/akashdiphazra/Downloads/Vcpkg/src/main.cpp for CXX dependencies
FAILED: CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi
/usr/bin/c++ -DVcpkg_EXPORTS -I/home/akashdiphazra/Downloads/Vcpkg/include -I/home/akashdiphazra/Downloads/Vcpkg/src -g -O0 -coverage -fprofile-arcs -ftest-coverage -g -std=gnu++20 -fPIC -fdiagnostics-color=always -E -x c++ /home/akashdiphazra/Downloads/Vcpkg/src/main.cpp -MT CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi -MD -MF CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi.d -fmodules-ts -fdeps-file=CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi -fdeps-target=CMakeFiles/Vcpkg.dir/src/main.cpp.o -fdeps-format=p1689r5 -o CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi.i
/home/akashdiphazra/Downloads/Vcpkg/src/main.cpp:1:10: fatal error: fmt/color.h: No such file or directory
1 | #include <fmt/color.h>
| ^~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
make: *** [Makefile:10: debug] Error 1
ninja.log
# ninja log v6
15 26803 1719332434965250296 CMakeFiles/akash.dir/src/main.cpp.o 384a56197d066769
3 14 1719332434953250355 /home/akashdiphazra/Downloads/Vcpkg/build/linux-debug/CMakeFiles/akash.dir/CXXModules.json 4879662838ccf47d
3 14 1719332434953250355 CMakeFiles/akash.dir/CXX.dd 4879662838ccf47d
3 14 1719332434953250355 CMakeFiles/akash.dir/src/main.cpp.o.modmap 4879662838ccf47d
1 2305 1719333409493404124 build.ninja 430dfc98276d9b78
4 549 1719332374774547644 CMakeFiles/akash.dir/src/main.cpp.o.ddi 8ee06fab8c85eae4
53 4480 1719333409493404124 build.ninja 430dfc98276d9b78
Error happens whenever I tried to debug this. It compiles without the vcpkg but when I was trying to add third party libraries using vcpkg , it fails.
it compiles Sucessfully when
Root Dir
cmake_minimum_required (VERSION 3.28)
project(Vcpkg)
find_package(fmt REQUIRED)
find_package(spdlog REQUIRED)
# Add sub directories
include_directories(include)
add_subdirectory(src)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
src/CMakeList.txt
set (CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
SET(GCC_COVERAGE_COMPILE_FLAGS "-g -O0 -coverage -fprofile-arcs -ftest-coverage")
SET(GCC_COVERAGE_LINK_FLAGS "-coverage -lgcov")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}" )
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}" )
add_executable(akash main.cpp)
target_compile_features(akash PRIVATE cxx_std_20)
target_link_libraries(akash fmt::fmt spdlog::spdlog)
am i doing something wrong, i am new to Cmake build systems.