cmake_minimum_required(VERSION 3.0) project(pixman VERSION 0.32.0 LANGUAGES C) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) set(CMAKE_DEBUG_POSTFIX "d") if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") add_definitions(-DTLS=__thread) add_definitions(-DHAVE_PTHREADS) endif() include_directories(".") file(GLOB SOURCES "pixman.c" "pixman-access.c" "pixman-access-accessors.c" "pixman-bits-image.c" "pixman-combine32.c" "pixman-combine-float.c" "pixman-conical-gradient.c" "pixman-filter.c" "pixman-x86.c" "pixman-mips.c" "pixman-arm.c" "pixman-ppc.c" "pixman-edge.c" "pixman-edge-accessors.c" "pixman-fast-path.c" "pixman-glyph.c" "pixman-general.c" "pixman-gradient-walker.c" "pixman-image.c" "pixman-implementation.c" "pixman-linear-gradient.c" "pixman-matrix.c" "pixman-noop.c" "pixman-radial-gradient.c" "pixman-region16.c" "pixman-region32.c" "pixman-solid-fill.c" "pixman-timer.c" "pixman-trap.c" "pixman-utils.c" "pixman-sse2.c" ) add_library(pixman-1 ${SOURCES}) # pixman requires the three PACKAGE* definitions in order to compile. The USE_SSE2 definition lets it use SSE2 instructions for speed. Every target machine should have SSE2 these days. target_compile_definitions(pixman-1 PUBLIC PACKAGE="pixman-1" PACKAGE_VERSION="0.34.0" PACKAGE_BUGREPORT="" PRIVATE USE_SSE2 ) # pixman produces a lot of warnings which are disabled here because they otherwise fill up the log files if(MSVC) target_compile_options(pixman-1 PRIVATE "/wd4244" "/wd4146" "/wd4996") # PUBLIC "/D_CRT_SECURE_NO_WARNINGS" endif() install(TARGETS pixman-1 RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib )