Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vcpkg isn't working on windows with mingw

i'm actually trying to make vcpkg with cmake and MinGW working on windows but it seems like he don't want to use MinGW

Here is the error :

-- Running vcpkg install - done
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at vcpkg/scripts/buildsystems/vcpkg.cmake:771 (_find_package):
  Could not find a configuration file for package "glfw3" that is compatible
  with requested version "".

  The following configuration files were considered but not accepted:

    C:/Users/ErikT/Desktop/ManiaEngine/build/vcpkg_installed/x64-windows/share/glfw3/glfw3Config.cmake, version: 3.3.4 (64bit)

Call Stack (most recent call first):
  CMakeLists.txt:7 (find_package)

and here is my cmake

cmake_minimum_required(VERSION 3.20)
project(ManiaEngine)

SET(CMAKE_CXX_STANDARD 17)

## Find dependencies
find_package(glfw3 REQUIRED)
find_package(glm REQUIRED)
find_package(Vulkan REQUIRED)


## Create ManiaEngine executable
add_executable(ManiaEngine 
    source/Launch.cpp
    source/Window.cpp
    )

target_include_directories(ManiaEngine 
  PRIVATE 
    "${CMAKE_CURRENT_LIST_DIR}/source"
)

target_link_libraries(
  ManiaEngine
  PRIVATE
    glfw
    glm::glm
    Vulkan::Vulkan
)

I use a CMakePresets to compiler with vcpkg :

{
    "version": 2,
    "cmakeMinimumRequired": {
      "major": 3,
      "minor": 20,
      "patch": 0
    },
    "configurePresets": [
        {
            "name": "unix",
            "displayName": "Default Config",
            "description": "Default build using Make and vcpkg",
            "generator": "Unix Makefiles",
            "binaryDir": "${sourceDir}/build",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
            }
        },
            {
            "name": "msvc",
            "displayName": "Default MSVC",
            "description": "Default build using Visual Studio and vcpkg",
            "generator": "Visual Studio 16 2019",
            "binaryDir": "${sourceDir}/build",
            "cacheVariables": {
            "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
            } 
        },
        {
            "name": "mingw",
            "displayName": "Default MinGW",
            "description": "Default build using MinGW and vcpkg",
            "generator": "MinGW Makefiles",
            "binaryDir": "${sourceDir}/build",
            "cacheVariables": {
            "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
            } 
        }   
    ]
}

For the specification of the project, the vulkan SDK is installed, i use CMAKE 20.05, the latest VCPKG project on github. All my libs except VULKAN are submodule of the project, and i have visual studio build tools 2019 installed.

I don't want to use visual studio that why i use mingw as a generator.

If you need more information about the project, you can find it on github here :

https://github.com/real2k/ManiaEngine

Thanks in advance

like image 794
Erik Tellier Avatar asked Nov 08 '25 11:11

Erik Tellier


1 Answers

You need to tell vcpkg which triplet to use via the following variables:

export VCPKG_DEFAULT_TRIPLET=x64-mingw-dynamic
export VCPKG_DEFAULT_HOST_TRIPLET=x64-mingw-dynamic

These can also be set in your presets.

See more in the vcpkg documentation here: https://github.com/microsoft/vcpkg/blob/master/docs/users/mingw.md

like image 74
Alex Reinking Avatar answered Nov 10 '25 11:11

Alex Reinking