Files
tiny_computer/android/app/src/main/cpp/recipes/pixman.cmake
2024-09-20 21:39:48 +08:00

92 lines
3.2 KiB
CMake

file(GENERATE
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pixman-config.h"
CONTENT "")
file(GENERATE
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pixman-version.h"
CONTENT "
#pragma once
#ifndef PIXMAN_H__
# error pixman-version.h should only be included by pixman.h
#endif
#define PIXMAN_VERSION_MAJOR 0
#define PIXMAN_VERSION_MINOR 43
#define PIXMAN_VERSION_MICRO 4
#define PIXMAN_VERSION_STRING \"0.43.4\"
#define PIXMAN_VERSION 4304
#ifndef PIXMAN_API
# define PIXMAN_API
#endif
")
check_type_size("long" SIZEOF_LONG)
set(PIXMAN_SRC
pixman/pixman/pixman.c
pixman/pixman/pixman-access.c
pixman/pixman/pixman-access-accessors.c
pixman/pixman/pixman-bits-image.c
pixman/pixman/pixman-combine32.c
pixman/pixman/pixman-combine-float.c
pixman/pixman/pixman-conical-gradient.c
pixman/pixman/pixman-filter.c
pixman/pixman/pixman-x86.c
pixman/pixman/pixman-mips.c
pixman/pixman/pixman-arm.c
pixman/pixman/pixman-ppc.c
pixman/pixman/pixman-edge.c
pixman/pixman/pixman-edge-accessors.c
pixman/pixman/pixman-fast-path.c
pixman/pixman/pixman-glyph.c
pixman/pixman/pixman-general.c
pixman/pixman/pixman-gradient-walker.c
pixman/pixman/pixman-image.c
pixman/pixman/pixman-implementation.c
pixman/pixman/pixman-linear-gradient.c
pixman/pixman/pixman-matrix.c
pixman/pixman/pixman-noop.c
pixman/pixman/pixman-radial-gradient.c
pixman/pixman/pixman-region16.c
pixman/pixman/pixman-region32.c
pixman/pixman/pixman-solid-fill.c
pixman/pixman/pixman-timer.c
pixman/pixman/pixman-trap.c
pixman/pixman/pixman-utils.c)
set(PIXMAN_CFLAGS
"-DHAVE_BUILTIN_CLZ=1"
"-DHAVE_PTHREADS=1"
"-DPACKAGE=\"pixman\""
"-DTLS=__thread"
"-DSIZEOF_LONG=${SIZEOF_LONG}"
"-DUSE_OPENMP=1"
"-Wno-unknown-attributes")
if("${CMAKE_ANDROID_ARCH_ABI}" STREQUAL "arm64-v8a")
set(PIXMAN_SRC ${PIXMAN_SRC}
"pixman/pixman/pixman-arm-neon.c"
"pixman/pixman/pixman-arma64-neon-asm.S"
"pixman/pixman/pixman-arma64-neon-asm-bilinear.S")
set(PIXMAN_CFLAGS ${PIXMAN_CFLAGS} "-DUSE_ARM_A64_NEON=1")
endif()
if("${CMAKE_ANDROID_ARCH_ABI}" STREQUAL "armeabi-v7a")
set(PIXMAN_SRC ${PIXMAN_SRC}
"pixman/pixman/pixman-arm-neon.c"
"pixman/pixman/pixman-arm-neon-asm.S"
"pixman/pixman/pixman-arm-neon-asm-bilinear.S"
"pixman/pixman/pixman-arm-simd-asm.S"
"pixman/pixman/pixman-arm-simd-asm-scaled.S")
set(PIXMAN_CFLAGS ${PIXMAN_CFLAGS} "-DUSE_ARM_SIMD=1" "-DUSE_ARM_NEON=1" "-v")
endif()
if ("${CMAKE_ANDROID_ARCH_ABI}" STREQUAL "x86" OR "${CMAKE_ANDROID_ARCH_ABI}" STREQUAL "x86_64")
set(PIXMAN_CFLAGS ${PIXMAN_CFLAGS} "-msse2" "-Winline" "-mssse3" "-Winline")
endif()
add_library(pixman STATIC ${PIXMAN_SRC})
target_compile_options(pixman PRIVATE ${PIXMAN_CFLAGS})
target_include_directories(pixman PRIVATE pixman "${CMAKE_CURRENT_BINARY_DIR}")
target_apply_patch(pixman "${CMAKE_CURRENT_SOURCE_DIR}/pixman" "${CMAKE_CURRENT_SOURCE_DIR}/patches/pixman.patch")