UNPKG

indigo-node

Version:
207 lines (191 loc) 10.4 kB
cmake_minimum_required(VERSION 2.8) project(Cairo C) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../../common/cmake/) if (USE_SYSTEM_CAIRO) find_package(CAIRO) if (NOT CAIRO_FOUND) MESSAGE(FATAL_ERROR "Cannot find system Cairo library") endif() endif() find_package(PIXMAN) if (NOT CAIRO_FOUND) message(STATUS "Using local Cairo library") set(Cairo_headers_dir ${CMAKE_CURRENT_SOURCE_DIR}/src/) include_directories(${Cairo_headers_dir} ${Pixman_headers_dir}) set(CAIRO_HAS_QUARTZ_FONT 0) set(CAIRO_HAS_QUARTZ_SURFACE 0) set(CAIRO_HAS_QUARTZ_IMAGE_SURFACE 0) set(CAIRO_HAS_WIN32_FONT 0) set(CAIRO_HAS_WIN32_SURFACE 0) set(CAIRO_HAS_FC_FONT 0) set(CAIRO_HAS_FT_FONT 0) set(CAIRO_HAS_GL_SURFACE 0) set(CAIRO_HAS_VG_SURFACE 0) set(CAIRO_HAS_GLX_FUNCTIONS 0) set(CAIRO_HAS_EGL_FUNCTIONS 0) set(CAIRO_HAS_GLESV2_SURFACE 0) set(CAIRO_WIN32_STATIC_BUILD 0) if(UNIX OR APPLE OR MINGW) add_definitions(-DHAVE_STDINT_H -DCAIRO_HAS_PTHREAD -D_GNU_SOURCE -DHAVE_UINT64_T) endif() if (UNIX AND NOT APPLE) set(CAIRO_HAS_FC_FONT 1) set(CAIRO_HAS_FT_FONT 1) if(NOT DEFINED $ENV{VERBOSE}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-attributes") endif() endif() if (APPLE) set(CAIRO_HAS_QUARTZ_FONT 1) set(CAIRO_HAS_QUARTZ_SURFACE 1) set(CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1) if(NOT DEFINED $ENV{VERBOSE}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-enum-conversion -Wno-tautological-constant-out-of-range-compare -Wno-deprecated-declarations -Wno-return-type -Wno-parentheses-equality") endif() endif() if(MSVC) add_definitions(-DDISABLE_SOME_FLOATING_POINT) # Fix lround missing problem endif() if (MSVC OR MINGW) set(CAIRO_HAS_WIN32_FONT 1) set(CAIRO_HAS_WIN32_SURFACE 1) set(CAIRO_WIN32_STATIC_BUILD 1) file (GLOB CAIRO_WIN32_SOURCES src/win32/*.c) endif() if(WITH_CAIRO_VG) set(CAIRO_HAS_VG_SURFACE 1) endif() if(WITH_CAIRO_GL) set(CAIRO_HAS_GL_SURFACE 1) endif() if(WITH_CAIRO_EGL) set(CAIRO_HAS_EGL_FUNCTIONS 1) endif() if(WITH_CAIRO_GLESV2) set(CAIRO_HAS_GLESV2_SURFACE 1) endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-features.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-features.h) file (GLOB CAIRO_SOURCES src/*.c) file (GLOB CAIRO_HEADERS src/*.h) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-screen.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-visual.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-display.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-os2-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/check-has-hidden-symbols.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-glitz-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-directfb-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/check-link.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/test-fallback-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/test-meta-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_FCURRENT_SOURCE_DIR}/src/test-paginated-surface.c) if (NOT WITH_CAIRO_EGL) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-egl-context.c) endif() if (NOT WITH_CAIRO_GL AND NOT WITH_CAIRO_GLESV2) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-composite.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-device.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-dispatch.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-glyphs.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-gradient.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-info.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-msaa-compositor.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-operand.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-shaders.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-source.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-spans-compositor.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-gl-traps-compositor.c) endif() list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-glx-context.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-script-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-tee-surface.c) if (NOT WITH_CAIRO_VG) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-vg-surface.c) endif() list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-wgl-context.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-connection-core.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-connection-render.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-connection-shm.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-connection.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-screen.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-shm.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-surface-cairo.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-surface-core.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xcb-surface-render.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-xcb-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-render-compositor.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-source.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-core-compositor.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-fallback-compositor.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xlib-surface-shm.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-cogl-gradient.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-cogl-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-cogl-utils.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-cogl-context.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-xml-surface.c) if((NOT MSVC) AND (NOT MINGW)) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-win32-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-win32-printing-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-win32-font-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-win32-font.c) endif() if (NOT APPLE) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-quartz-image-surface.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-quartz-font.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-quartz-surface.c) endif(NOT APPLE) if (APPLE) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-fixed.c) list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-freed-pool.c) endif() if((UNIX) AND (NOT APPLE)) find_package(Freetype REQUIRED) if(NOT FREETYPE_FOUND) message(FATAL_ERROR "No Freetype found") endif() add_definitions(-DCAIRO_HAS_FT_FONT) add_definitions(-DCAIRO_HAS_FC_FONT) include_directories(${FREETYPE_INCLUDE_DIRS}) else() list(REMOVE_ITEM CAIRO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/cairo-ft-font.c) endif() include_directories(${PNG_INCLUDE_DIR}) include_directories(${ZLib_HEADERS_DIR}) if(MSVC AND NOT DEFINED $ENV{VERBOSE}) add_definitions(/wd4244 /wd4146 /wd4267) endif() # To remove GLIBC_2.11 dependency set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0") if (MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244 /wd4146 /wd4334 /wd4267 /wd4101") endif() add_library(cairo STATIC ${CAIRO_SOURCES} ${CAIRO_WIN32_SOURCES}) set_target_properties(cairo PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS}") if(UNIX AND NOT APPLE) target_link_libraries(cairo freetype fontconfig) endif() if(MSVC OR MINGW) target_link_libraries(cairo msimg32) endif() if (WITH_CAIRO_GL) target_link_libraries(cairo GL) endif() if (WITH_CAIRO_VG) target_link_libraries(cairo OpenVG) endif() if (WITH_CAIRO_EGL) target_link_libraries(cairo egl) endif() if (WITH_CAIRO_GLESV2) target_link_libraries(cairo glesv2) endif() set_property(TARGET cairo PROPERTY FOLDER "third_party") if (NOT NO_STATIC) pack_static(cairo) endif() else() set(Cairo_headers_dir ${CAIRO_INCLUDE_DIRS}) endif()