-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Open
Description
I am using Cmake for build large project and want to migrate to WebAssembly and the project have some dependencies. When I build the project using my CMakeLists.txt, I just got some errors of find_package
-- Could NOT find PIXMAN, try to set the path to PIXMAN root folder in the system variable PIXMAN (missing: PIXMAN_LIBRARIES PIXMAN_INCLUDE_DIRS)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
CMake Error at /usr/local/Cellar/cmake/3.19.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:218 (message):
Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.19.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:582 (_FPHSA_FAILURE_MESSAGE)
/usr/local/Cellar/cmake/3.19.2/share/cmake/Modules/FindPNG.cmake:156 (find_package_handle_standard_args)
external/cairo/CMakeLists.txt:7 (find_package)
Here is the cairo
CMakeLists.txt
project(cairo)
cmake_minimum_required(VERSION 2.9)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
find_package(Pixman REQUIRED)
find_package(PNG REQUIRED)
find_package(ZLIB REQUIRED)
find_package(Freetype)
find_package(Threads)
find_package(Fontconfig)
include(Configure_config.cmake)
include(Configure_features.cmake)
include_directories(${CMAKE_BINARY_DIR})
if(CAIRO_HAS_PTHREAD)
list(APPEND CAIRO_LIBS -lpthread)
endif()
if (WIN32)
set(CAIRO_LIBS gdi32 msimg32 user32 winmm)
endif()
include_directories(${PIXMAN_INCLUDE_DIR} ${PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
list(APPEND CAIRO_LIBS ${PIXMAN_LIBRARY} ${PNG_LIBRARY} ${ZLIB_LIBRARY})
if(FONTCONFIG_FOUND)
list(APPEND CAIRO_LIBS ${FONTCONFIG_LIBRARY})
endif()
if(FREETYPE_FOUND)
find_package(BZip2)
include_directories(${FREETYPE_INCLUDE_DIRS})
include_directories(${BZIP2_INCLUDE_DIR})
list(APPEND CAIRO_LIBS ${FREETYPE_LIBRARIES} ${BZIP2_LIBRARIES})
endif()
include_directories(src)
add_subdirectory(src)
cmake_policy (SET CMP0072 NEW)
And some cmake file like FindPixman
is
# - Try to find PIXMAN
# Once done this will define
#
# PIXMAN_ROOT_DIR - Set this variable to the root installation of PIXMAN
# PIXMAN_FOUND - system has PIXMAN
# PIXMAN_INCLUDE_DIRS - the PIXMAN include directory
# PIXMAN_LIBRARIES - Link these to use PIXMAN
#
# Copyright (c) 2008 Joshua L. Blocher <verbalshadow at gmail dot com>
# Copyright (c) 2011 Ralf Habacker, <ralf dot habacker at freenet dot de>
# Copyright (c) 2012 Dmitry Baryshnikov <polimax at mail dot ru>
# Copyright (c) 2015 Mikhail Paulyshka <pavlyshko-m at yandex dot by>
#
# Distributed under the OSI-approved BSD License
#
if (NOT WIN32)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_PIXMAN pixman)
SET(PIXMAN_VERSION ${_PIXMAN_VERSION})
endif (PKG_CONFIG_FOUND)
endif (NOT WIN32)
SET(_PIXMAN_ROOT_HINTS
$ENV{PIXMAN}
${CMAKE_FIND_ROOT_PATH}
${PIXMAN_ROOT_DIR}
)
SET(_PIXMAN_ROOT_PATHS
$ENV{PIXMAN}/src
/usr
/usr/local
)
SET(_PIXMAN_ROOT_HINTS_AND_PATHS
HINTS ${_PIXMAN_ROOT_HINTS}
PATHS ${_PIXMAN_ROOT_PATHS}
)
FIND_PATH(PIXMAN_INCLUDE_DIR
NAMES
"pixman.h"
HINTS
${_PIXMAN_INCLUDEDIR}
${_PIXMAN_ROOT_HINTS_AND_PATHS}
PATH_SUFFIXES
include
"include/pixman-1"
)
FIND_LIBRARY(PIXMAN_LIBRARY
NAMES
pixman-1
pixman-1d
pixman-1_static
pixman-1_staticd
HINTS
${_PIXMAN_LIBDIR}
${_PIXMAN_ROOT_HINTS_AND_PATHS}
PATH_SUFFIXES
"lib"
"local/lib"
)
SET(PIXMAN_LIBRARIES
${PIXMAN_LIBRARY}
)
SET(PIXMAN_INCLUDE_DIRS
${PIXMAN_INCLUDE_DIR}
)
if (NOT PIXMAN_VERSION)
if (EXISTS "${PIXMAN_INCLUDE_DIRS}/pixman-version.h")
file(READ "${PIXMAN_INCLUDE_DIRS}/pixman-version.h" PIXMAN_VERSION_CONTENT)
string(REGEX MATCH "#define +PIXMAN_VERSION_MAJOR +([0-9]+)" _dummy "${PIXMAN_VERSION_CONTENT}")
set(PIXMAN_VERSION_MAJOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define +PIXMAN_VERSION_MINOR +([0-9]+)" _dummy "${PIXMAN_VERSION_CONTENT}")
set(PIXMAN_VERSION_MINOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define +PIXMAN_VERSION_MICRO +([0-9]+)" _dummy "${PIXMAN_VERSION_CONTENT}")
set(PIXMAN_VERSION_MICRO "${CMAKE_MATCH_1}")
set(PIXMAN_VERSION "${PIXMAN_VERSION_MAJOR}.${PIXMAN_VERSION_MINOR}.${PIXMAN_VERSION_MICRO}")
endif (EXISTS "${PIXMAN_INCLUDE_DIRS}/pixman-version.h")
endif(NOT PIXMAN_VERSION)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PIXMAN
REQUIRED_VARS PIXMAN_LIBRARIES PIXMAN_INCLUDE_DIRS
VERSION_VAR PIXMAN_VERSION
FAIL_MESSAGE "Could NOT find PIXMAN, try to set the path to PIXMAN root folder in the system variable PIXMAN"
)
MARK_AS_ADVANCED(PIXMAN_CONFIG_INCLUDE_DIR PIXMAN_INCLUDE_DIR PIXMAN_INCLUDE_DIRS PIXMAN_LIBRARY PIXMAN_LIBRARIES)
But It works when I just used cmake to build.
What's the solution for that?
Noordfrees, theoparis, wernight and zhuxudong
Metadata
Metadata
Assignees
Labels
No labels