compliant with giteapc
This commit is contained in:
parent
167c60e518
commit
54554172a6
|
@ -0,0 +1,79 @@
|
|||
cmake_minimum_required(VERSION 3.16)
|
||||
project(Libcjpg VERSION 1.5.30 LANGUAGES C)
|
||||
find_package(Gint 2.7.1 REQUIRED)
|
||||
|
||||
set(SOURCES
|
||||
jcapimin.c
|
||||
jcapistd.c
|
||||
jdapimin.c
|
||||
jdapistd.c
|
||||
jcomapi.c
|
||||
jcparam.c
|
||||
jctrans.c
|
||||
jdtrans.c
|
||||
jcinit.c
|
||||
jcmaster.c
|
||||
jcmainct.c
|
||||
jcprepct.c
|
||||
jccoefct.c
|
||||
jccolor.c
|
||||
jcsample.c
|
||||
jcdctmgr.c
|
||||
jfdctint.c
|
||||
jfdctfst.c
|
||||
jfdctflt.c
|
||||
jchuff.c
|
||||
jcarith.c
|
||||
jcmarker.c
|
||||
jdatadst.c
|
||||
jdmaster.c
|
||||
jdinput.c
|
||||
jdmainct.c
|
||||
jdcoefct.c
|
||||
jdpostct.c
|
||||
jdmarker.c
|
||||
jdhuff.c
|
||||
jdarith.c
|
||||
jddctmgr.c
|
||||
jidctint.c
|
||||
jidctfst.c
|
||||
jidctflt.c
|
||||
jdsample.c
|
||||
jdcolor.c
|
||||
jdmerge.c
|
||||
jquant1.c
|
||||
jquant2.c
|
||||
jdatasrc.c
|
||||
jaricom.c
|
||||
jerror.c
|
||||
jmemmgr.c
|
||||
jutils.c
|
||||
jmemname.c
|
||||
)
|
||||
include_directories(
|
||||
"${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_BINARY_DIR}/include"
|
||||
"${FXSDK_COMPILER_INSTALL}/include"
|
||||
"${FXSDK_COMPILER_INSTALL}/include/openlibm")
|
||||
add_compile_options(-Os -lm -m4-nofpu -mb -std=c11 -ffreestanding -nostdlib -Wa,--dsp)
|
||||
# Target name is "cJPG", output file is "libcJPG.a" (by default)
|
||||
add_library(cJPG STATIC ${SOURCES})
|
||||
# After building, install the target (that is, libcJPG.a) in the compiler
|
||||
install(TARGETS cPNG
|
||||
DESTINATION "${FXSDK_COMPILER_INSTALL}")
|
||||
# Install jpeglib.h from the build dir
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/jpeglib.h"
|
||||
DESTINATION "${FXSDK_COMPILER_INSTALL}/include")
|
||||
# Install jconfig.h from the build dir
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/jconfig.h"
|
||||
DESTINATION "${FXSDK_COMPILER_INSTALL}/include")
|
||||
# Install jmorecfg.h from the build dir
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/jmorecfg.h"
|
||||
DESTINATION "${FXSDK_COMPILER_INSTALL}/include")
|
||||
# Install jerror.h from the build dir
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/jerror.h"
|
||||
DESTINATION "${FXSDK_COMPILER_INSTALL}/include")
|
||||
# Install FindcPNG.cmake so that users can do find_package(LibcPNG)
|
||||
install(FILES cmake/FindcJPG.cmake
|
||||
DESTINATION "${FXSDK_CMAKE_MODULE_PATH}")
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
find_package(Gint 2.7 REQUIRED)
|
||||
# Find libexample.a; if we had platform-specific versions we could look for
|
||||
# libexample-${FXSDK_PLATFORM}.a instead.
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} -print-file-name=libcJPG.a
|
||||
OUTPUT_VARIABLE EX_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
# EX_PATH is now the full path if libustl.a exists, "libustl.a" otherwise
|
||||
if(NOT "${EX_PATH}" STREQUAL "libcPNG.a")
|
||||
# Find the version.h header
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} -print-file-name=include/jconfig.h
|
||||
OUTPUT_VARIABLE EX_CONFIG OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
# Extract version information from the config.h header. This command prints
|
||||
# the version on the line matching the regex and deletes every other line.
|
||||
execute_process(
|
||||
COMMAND sed -E "s/#define.*EX_VERSION\\s+\"(\\S+)\"$/\\1/p; d" ${EX_CONFIG}
|
||||
OUTPUT_VARIABLE EX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif()
|
||||
# The commands above seem common for gint libraries, so the fxSDK provides a
|
||||
# helper function to get that directly. We simply provide the archive name,
|
||||
# header file name, macro name, and names for output variables.
|
||||
# include(FindSimpleLibrary)
|
||||
# find_simple_library(libexample.a include/example/config.h "EX_VERSION"
|
||||
# PATH_VAR EX_PATH VERSION_VAR EX_VERSION)
|
||||
# This CMake utility will handle the version comparisons and other checks. We
|
||||
# just specify:
|
||||
# -> Some variables that are defined only if the library is found (so if
|
||||
# they're undefined, CMake will conclude libexample was not found)
|
||||
# -> The version, so CMake can compare with the user's requested one
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(libcJPG
|
||||
REQUIRED_VARS EX_CONFIG EX_VERSION
|
||||
VERSION_VAR EX_VERSION)
|
||||
# We now have a LibExample_FOUND variable, let's create the target that users
|
||||
# can link against with target_link_libraries()
|
||||
if(LibcJPG_FOUND)
|
||||
# This is an imported target, we don't build it, we just claim it's here
|
||||
add_library(libcJPG::libcJPG UNKNOWN IMPORTED)
|
||||
# Here we declare the compiler and linker flags that every user of LibExample
|
||||
# needs to use.
|
||||
set_target_properties(libcJPG::libcJPG PROPERTIES
|
||||
# If we specify where the library comes from, CMake will watch that file
|
||||
# and relink any user application when the library is updated!
|
||||
IMPORTED_LOCATION "${EX_PATH}"
|
||||
# Linking options
|
||||
INTERFACE_LINK_OPTIONS -lcJPG
|
||||
# Dependencies (for order on the command-line)
|
||||
IMPORTED_LINK_INTERFACE_LIBRARIES Gint::Gint)
|
||||
endif()
|
Loading…
Reference in New Issue