Vcpkg Pango CMake构建失败缺少头文件 [英] Vcpkg Pango CMake build fails missing header file

查看:107
本文介绍了Vcpkg Pango CMake构建失败缺少头文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用vcpkg安装Wt,pango是依赖项之一.但是,我在尝试使其正确构建时遇到了严重的问题.这是终端输出的内容:

I am trying to install Wt using vcpkg, and pango is one of the dependencies. However, I am having serious issues trying to make it build correctly. Here is what the terminal outputs:

Starting package 1/2: pango:x64-osx
Building package pango[core]:x64-osx...
-- Using cached /Users/jackhogan/Desktop/Code/Utilities/vcpkg/downloads/pango-1.40.11.tar.xz
-- Using source at /Users/jackhogan/Desktop/Code/Utilities/vcpkg/buildtrees/pango/src/1.40.11-f997ae867d
-- Configuring x64-osx-dbg
-- Configuring x64-osx-rel
-- Building x64-osx-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:136 (message):
    Command failed: /Users/jackhogan/Desktop/Code/Utilities/vcpkg/downloads/tools/cmake-3.17.2-osx/cmake-3.17.2-Darwin-x86_64/CMake.app/Contents/bin/cmake --build . --config Debug --target install -- -v
    Working Directory: /Users/jackhogan/Desktop/Code/Utilities/vcpkg/buildtrees/pango/x64-osx-dbg
    See logs for more information:
      /Users/jackhogan/Desktop/Code/Utilities/vcpkg/buildtrees/pango/install-x64-osx-dbg-out.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_build_cmake.cmake:91 (vcpkg_execute_build_process)
  scripts/cmake/vcpkg_install_cmake.cmake:24 (vcpkg_build_cmake)
  ports/pango/portfile.cmake:25 (vcpkg_install_cmake)
  scripts/ports.cmake:76 (include)


Error: Building package pango:x64-osx failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: pango:x64-osx
  Vcpkg version: 2020.02.04-unknownhash

Additionally, attach any relevant sections from the log files above.

这是终端引用的out文件:

Here is the out file the terminal references:

-- The C compiler identification is AppleClang 11.0.3.11030032
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Link-time dependencies:
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libintl.a
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libglib-2.0.a
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libgobject-2.0.a
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libgmodule-2.0.a
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libcairod.a
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libcairo-gobjectd.a
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libfreetyped.a
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libfontconfig.a
--   /Users/jackhogan/Desktop/Code/Utilities/vcpkg/installed/x64-osx/debug/lib/libharfbuzz.a
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/jackhogan/Desktop/Code/Utilities/vcpkg/buildtrees/pango/x64-osx-dbg

这是CMakeLists.txt:

Here is the CMakeLists.txt:

cmake_minimum_required(VERSION 3.0)
project(pango C)

set(PANGO_LIB_SUFFIX 1.0)
set(PANGO_DLL_SUFFIX 1)
set(GLIB_LIB_VERSION 2.0)

if(WIN32)
  configure_file(./config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/config.h COPYONLY)
else()
  configure_file(./config.h.unix ${CMAKE_CURRENT_BINARY_DIR}/config.h COPYONLY)
endif()

if (WIN32)
  # Set utf-8 charset to avoid compile error C2001
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /utf-8")
endif()

add_definitions(-DHAVE_CONFIG_H)
include_directories(. ./pango ${CMAKE_CURRENT_BINARY_DIR})

if(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
# find libintl
find_path(LIBINTL_INCLUDE_DIR libintl.h)
find_library(LIBINTL_LIBRARY NAMES libintl intl)
endif()

# find glib
find_path(GLIB_INCLUDE_DIR glib.h)
find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_VERSION})
find_library(GLIB_GOBJECT_LIBRARY gobject-${GLIB_LIB_VERSION})
find_library(GLIB_GMODULE_LIBRARY gmodule-${GLIB_LIB_VERSION})
set(GLIB_LIBRARIES ${GLIB_GLIB_LIBRARY} ${GLIB_GOBJECT_LIBRARY} ${GLIB_GMODULE_LIBRARY})

# find cairo
find_path(CAIRO_INCLUDE_DIR cairo.h)
if(CMAKE_BUILD_TYPE STREQUAL Debug)
    set(CAIRO_SUFFIX d)
endif()
find_library(CAIRO_LIBRARY 
    NAMES
        cairo${CAIRO_SUFFIX}
        cairo-static${CAIRO_SUFFIX})
find_library(CAIRO_GOBJECT_LIBRARY cairo-gobject${CAIRO_SUFFIX})
set(CAIRO_LIBRARIES ${CAIRO_LIBRARY} ${CAIRO_GOBJECT_LIBRARY})

# find fontconfig
find_path(FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h)
find_library(FONTCONFIG_LIBRARY fontconfig)

# find freetype
find_path(FREETYPE_INCLUDE_DIR ft2build.h)
if(CMAKE_BUILD_TYPE STREQUAL Debug)
    set(FT_SUFFIX d)
endif()
find_library(FREETYPE_LIBRARY freetype${FT_SUFFIX})

# find harfbuzz
find_path(HARFBUZZ_INCLUDE_DIR harfbuzz/hb.h)
find_library(HARFBUZZ_LIBRARY harfbuzz)

if (APPLE)
    find_library(COREFOUNDATION_LIBRARY CoreFoundation)
    link_libraries(${COREFOUNDATION_LIBRARY})
endif()

set(FONT_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR} ${FONTCONFIG_INCLUDE_DIR} ${HARFBUZZ_INCLUDE_DIR}/harfbuzz)
set(FONT_LIBRARIES ${FREETYPE_LIBRARY} ${FONTCONFIG_LIBRARY} ${HARFBUZZ_LIBRARY})

macro(pango_add_module MODULE_NAME)
    add_library(${MODULE_NAME} ${ARGN})
    target_include_directories(${MODULE_NAME} PRIVATE ${GLIB_INCLUDE_DIR} ${LIBINTL_INCLUDE_DIR})
    target_link_libraries(${MODULE_NAME} ${LIBINTL_LIBRARY} ${GLIB_LIBRARIES})
    target_compile_definitions(${MODULE_NAME} PRIVATE
        G_LOG_DOMAIN="Pango" PANGO_ENABLE_BACKEND PANGO_ENABLE_ENGINE 
        G_DISABLE_SINGLE_INCLUDES SYSCONFDIR="/dummy/etc" LIBDIR="/dummy/lib")
    target_compile_definitions(${MODULE_NAME} PRIVATE HAVE_CAIRO_FREETYPE=1)
    set_target_properties(${MODULE_NAME} PROPERTIES
        DEFINE_SYMBOL PANGO_EXPORTS
        OUTPUT_NAME ${MODULE_NAME}-${PANGO_DLL_SUFFIX}
        ARCHIVE_OUTPUT_NAME ${MODULE_NAME}-${PANGO_LIB_SUFFIX})
    install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
endmacro()

pango_add_module(pango
    pango/break-arabic.c
    pango/break-indic.c
    pango/mini-fribidi/fribidi.c
    pango/mini-fribidi/fribidi_char_type.c
    pango/mini-fribidi/fribidi_types.c
    pango/break.c
    pango/ellipsize.c
    pango/fonts.c
    pango/glyphstring.c
    pango/modules.c
    pango/pango-attributes.c
    pango/pango-bidi-type.c
    pango/pango-color.c
    pango/pango-context.c
    pango/pango-coverage.c
    pango/pango-emoji.c
    pango/pango-engine.c
    pango/pango-fontmap.c
    pango/pango-fontset.c
    pango/pango-glyph-item.c
    pango/pango-gravity.c
    pango/pango-item.c
    pango/pango-language.c
    pango/pango-layout.c
    pango/pango-markup.c
    pango/pango-matrix.c
    pango/pango-renderer.c
    pango/pango-script.c
    pango/pango-tabs.c
    pango/pango-utils.c
    pango/reorder-items.c
    pango/shape.c
    pango/pango-enum-types.c)

if(WIN32)
pango_add_module(pangowin32
    pango/pangowin32.c
    pango/pangowin32-fontcache.c
    pango/pangowin32-fontmap.c
    pango/pangowin32-shape.c)
target_link_libraries(pangowin32 usp10 pango gdi32)
endif()

pango_add_module(pangoft2
    pango/pangofc-font.c
    pango/pangofc-fontmap.c
    pango/pangofc-decoder.c
    pango/pangofc-shape.c
    pango/pangoft2.c
    pango/pangoft2-fontmap.c
    pango/pangoft2-render.c
    pango/pango-ot-buffer.c
    pango/pango-ot-info.c
    pango/pango-ot-ruleset.c
    pango/pango-ot-tag.c)
target_link_libraries(pangoft2 pango ${FONT_LIBRARIES})
target_include_directories(pangoft2 PRIVATE ${FONT_INCLUDE_DIRS})

list(APPEND PANGO_CAIRO_SOURCES 
    pango/pangocairo-fcfont.c
    pango/pangocairo-fcfontmap.c
    pango/pangocairo-context.c
    pango/pangocairo-font.c
    pango/pangocairo-fontmap.c
    pango/pangocairo-render.c)
    
if(WIN32)
    list(APPEND PANGO_CAIRO_SOURCES 
        pango/pangocairo-win32font.c
        pango/pangocairo-win32fontmap.c)
endif()

pango_add_module(pangocairo ${PANGO_CAIRO_SOURCES})
list(APPEND PANGO_CAIRO_LIBRARIES  ${CAIRO_LIBRARIES} pango pangoft2 ${FONT_LIBRARIES})
if (WIN32)
    list(APPEND PANGO_CAIRO_LIBRARIES pangowin32)
endif()
target_link_libraries(pangocairo ${PANGO_CAIRO_LIBRARIES}) 
target_include_directories(pangocairo PRIVATE ${CAIRO_INCLUDE_DIR} ${FONT_INCLUDE_DIRS})


if(NOT PANGO_SKIP_HEADERS)
    install(FILES
        pango/pango.h 
        pango/pango-attributes.h 
        pango/pango-bidi-type.h 
        pango/pango-break.h 
        pango/pango-context.h 
        pango/pango-coverage.h 
        pango/pango-engine.h 
        pango/pango-font.h 
        pango/pango-fontmap.h 
        pango/pango-fontset.h 
        pango/pango-glyph.h 
        pango/pango-glyph-item.h 
        pango/pango-gravity.h 
        pango/pango-item.h 
        pango/pango-language.h 
        pango/pango-layout.h 
        pango/pango-matrix.h 
        pango/pango-modules.h 
        pango/pango-renderer.h 
        pango/pango-script.h 
        pango/pango-tabs.h 
        pango/pango-types.h 
        pango/pango-utils.h 
        pango/pango-version-macros.h 
        pango/pangocairo.h 
        pango/pangowin32.h 
        pango/pango-features.h 
        pango/pango-enum-types.h
        pango/pangofc-decoder.h 
        pango/pangofc-font.h 
        pango/pangofc-fontmap.h 
        pango/pango-ot.h 
        pango/pangoft2.h 
        DESTINATION include/pango)
endif()

message(STATUS "Link-time dependencies:")
message(STATUS "  " ${LIBINTL_LIBRARY})
foreach(GL ${GLIB_LIBRARIES})
    message(STATUS "  " ${GL})
endforeach()
foreach(CL ${CAIRO_LIBRARIES})
    message(STATUS "  " ${CL})
endforeach()
foreach(FL ${FONT_LIBRARIES})
    message(STATUS "  " ${FL})
endforeach()

问题可能是什么,我该如何解决?Vcpkg使用Clang,但我还安装了GCC,因此如有必要,我可以切换到它.

What could the problem be and how could I solve it? Vcpkg uses Clang but I also have GCC installed, so I could switch to it if necessary.

我运行了一些命令,发现找不到 hb-glib.h .但是,我已经安装了 glib harfbuzz .我什至可以找到丢失的头文件.可能是这个问题的原因?

I ran some commands and found out that it couldn't find hb-glib.h. However, I already have glib and harfbuzz installed. I am even able to find the missing header file. What could be the cause of this issue?

推荐答案

好吧,与我的预期相反,只需将 hb-glib.h 复制到 pango 源文件夹中和建筑工作.

Well, contrary to my expectations, just copying hb-glib.h to the pango source folder and building worked.

这篇关于Vcpkg Pango CMake构建失败缺少头文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆