• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2018-2024 Cosmin Truta
2#
3# This software is released under the MIT license. For conditions of
4# distribution and use, see the LICENSE file part of this package.
5
6cmake_minimum_required(VERSION 3.5)
7
8project(PNGMINUS C)
9
10option(PNGMINUS_USE_SYSTEM_PNG
11       "Use the libpng build found in the system" OFF)
12
13add_executable(png2pnm png2pnm.c)
14add_executable(pnm2png pnm2png.c)
15
16if(PNGMINUS_USE_SYSTEM_PNG)
17    # Use the system libpng.
18    find_package(PNG REQUIRED)
19    target_link_libraries(png2pnm PRIVATE PNG::PNG)
20    target_link_libraries(pnm2png PRIVATE PNG::PNG)
21else()
22    # Build and use the internal libpng.
23    # Configure libpng for static linking, to produce single-file executables.
24    set(PNG_STATIC ON
25        CACHE STRING "Build the internal libpng as a static library" FORCE)
26    set(PNG_SHARED OFF
27        CACHE STRING "Build the internal libpng as a shared library" FORCE)
28    set(PNG_FRAMEWORK OFF
29        CACHE STRING "Build the internal libpng as a framework bundle" FORCE)
30    add_subdirectory(../.. libpng)
31    target_include_directories(png2pnm PRIVATE
32        "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>"
33        "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/libpng>"
34    )
35    target_include_directories(pnm2png PRIVATE
36        "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>"
37        "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/libpng>"
38    )
39    target_link_libraries(png2pnm PRIVATE png_static)
40    target_link_libraries(pnm2png PRIVATE png_static)
41endif()
42