143 lines
3.6 KiB
CMake
Executable File
143 lines
3.6 KiB
CMake
Executable File
cmake_minimum_required(VERSION 3.0)
|
|
project(libexif LANGUAGES C)
|
|
|
|
set(PACKAGE "libexif")
|
|
|
|
option(ENABLE_NLS "Enable NLS" OFF)
|
|
|
|
set(HEADERS
|
|
libexif/_stdint.h
|
|
libexif/exif.h
|
|
libexif/exif-byte-order.h
|
|
libexif/exif-content.h
|
|
libexif/exif-data.h
|
|
libexif/exif-data-type.h
|
|
libexif/exif-entry.h
|
|
libexif/exif-format.h
|
|
libexif/exif-ifd.h
|
|
libexif/exif-loader.h
|
|
libexif/exif-log.h
|
|
libexif/exif-mem.h
|
|
libexif/exif-mnote-data.h
|
|
libexif/exif-mnote-data-priv.h
|
|
libexif/exif-system.h
|
|
libexif/exif-tag.h
|
|
libexif/exif-utils.h
|
|
)
|
|
|
|
set(SOURCES
|
|
libexif/exif-byte-order.c
|
|
libexif/exif-content.c
|
|
libexif/exif-data.c
|
|
libexif/exif-entry.c
|
|
libexif/exif-format.c
|
|
libexif/exif-ifd.c
|
|
libexif/exif-loader.c
|
|
libexif/exif-log.c
|
|
libexif/exif-mem.c
|
|
libexif/exif-mnote-data.c
|
|
libexif/exif-tag.c
|
|
libexif/exif-utils.c
|
|
)
|
|
|
|
set(HEADERS_CANON
|
|
libexif/canon/exif-mnote-data-canon.h
|
|
libexif/canon/mnote-canon-entry.h
|
|
libexif/canon/mnote-canon-tag.h
|
|
)
|
|
|
|
set(SOURCES_CANON
|
|
libexif/canon/exif-mnote-data-canon.c
|
|
libexif/canon/mnote-canon-entry.c
|
|
libexif/canon/mnote-canon-tag.c
|
|
)
|
|
|
|
set(HEADERS_FUJI
|
|
libexif/fuji/exif-mnote-data-fuji.h
|
|
libexif/fuji/mnote-fuji-entry.h
|
|
libexif/fuji/mnote-fuji-tag.h
|
|
)
|
|
|
|
set(SOURCES_FUJI
|
|
libexif/fuji/exif-mnote-data-fuji.c
|
|
libexif/fuji/mnote-fuji-entry.c
|
|
libexif/fuji/mnote-fuji-tag.c
|
|
)
|
|
|
|
set(HEADERS_OLYMPUS
|
|
libexif/olympus/exif-mnote-data-olympus.h
|
|
libexif/olympus/mnote-olympus-entry.h
|
|
libexif/olympus/mnote-olympus-tag.h
|
|
)
|
|
|
|
set(SOURCES_OLYMPUS
|
|
libexif/olympus/exif-mnote-data-olympus.c
|
|
libexif/olympus/mnote-olympus-entry.c
|
|
libexif/olympus/mnote-olympus-tag.c
|
|
)
|
|
|
|
set(HEADERS_PENTAX
|
|
libexif/pentax/exif-mnote-data-pentax.h
|
|
libexif/pentax/mnote-pentax-entry.h
|
|
libexif/pentax/mnote-pentax-tag.h
|
|
)
|
|
|
|
set(SOURCES_PENTAX
|
|
libexif/pentax/exif-mnote-data-pentax.c
|
|
libexif/pentax/mnote-pentax-entry.c
|
|
libexif/pentax/mnote-pentax-tag.c
|
|
)
|
|
|
|
if(MSVC)
|
|
set(SOURCES_MSVC "libexif.def")
|
|
endif()
|
|
|
|
add_library(libexif
|
|
${SOURCES}
|
|
${SOURCES_CANON}
|
|
${SOURCES_FUJI}
|
|
${SOURCES_OLYMPUS}
|
|
${SOURCES_PENTAX}
|
|
${SOURCES_MSVC}
|
|
)
|
|
|
|
target_include_directories(libexif PRIVATE .)
|
|
target_include_directories(libexif PRIVATE ${CMAKE_BINARY_DIR})
|
|
target_compile_definitions(libexif PRIVATE -D_CRT_SECURE_NO_WARNINGS)
|
|
target_compile_definitions(libexif PRIVATE -DGETTEXT_PACKAGE="${PACKAGE}")
|
|
|
|
include(CheckFunctionExists)
|
|
include(CheckIncludeFile)
|
|
|
|
check_function_exists(dcgettext HAVE_DCGETTEXT)
|
|
check_function_exists(gettext HAVE_DCGETTEXT)
|
|
check_function_exists(iconv HAVE_DCGETTEXT)
|
|
check_function_exists(localtime_r HAVE_DCGETTEXT)
|
|
|
|
check_include_file(dlfcn.h HAVE_DLFCN_H)
|
|
check_include_file(inttypes.h HAVE_INTTYPES_H)
|
|
check_include_file(memory.h HAVE_MEMORY_H)
|
|
check_include_file(stdint.h HAVE_STDINT_H)
|
|
check_include_file(stdlib.h HAVE_STDLIB_H)
|
|
check_include_file(strings.h HAVE_STRINGS_H)
|
|
check_include_file(string.h HAVE_STRING_H)
|
|
check_include_file(sys/stat.h HAVE_SYS_STAT_H)
|
|
check_include_file(sys/stat.h HAVE_SYS_STAT_H)
|
|
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
|
|
check_include_file(unistd.h HAVE_UNISTD_H)
|
|
|
|
configure_file(config.h.cmake config.h)
|
|
|
|
install(
|
|
TARGETS libexif
|
|
RUNTIME DESTINATION bin
|
|
ARCHIVE DESTINATION lib
|
|
LIBRARY DESTINATION lib
|
|
)
|
|
|
|
install(FILES ${HEADERS} DESTINATION include/libexif)
|
|
install(FILES ${HEADERS_CANON} DESTINATION include/libexif/canon)
|
|
install(FILES ${HEADERS_FUJI} DESTINATION include/libexif/fuji)
|
|
install(FILES ${HEADERS_OLYMPUS} DESTINATION include/libexif/olympus)
|
|
install(FILES ${HEADERS_PENTAX} DESTINATION include/libexif/pentax)
|