]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/sdl2-image/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / sdl2-image / CMakeLists.txt
diff --git a/ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/sdl2-image/CMakeLists.txt b/ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/sdl2-image/CMakeLists.txt
new file mode 100644 (file)
index 0000000..689f0fc
--- /dev/null
@@ -0,0 +1,142 @@
+cmake_minimum_required(VERSION 2.6)
+project(SDL2_image C)
+
+### configuration ###
+
+list(APPEND CMAKE_MODULE_PATH "${CURRENT_INSTALLED_DIR}/share/libwebp")
+# enable all file formats which are supported natively
+set(SUPPORTED_FORMATS BMP GIF LBM PCX PNM TGA XPM XCF XV SVG)
+
+# enable all file formats which are supported through external dependencies
+# first try to load them statically (lib file in vcpkg installation)
+# if this fails try to make them a dynamic dependency (dll will be loaded at runtime) if possible. vcpkg cannot resolve these dependencies!
+# else do not support this file format at all
+
+# Can be explicitly enabled or disabled via USE_XYZ
+set(DEPENDENCIES PNG JPEG TIFF WEBP)
+
+# patch library names for preprocessor flags
+set(JPEG_FLAG JPG)
+set(TIFF_FLAG TIF)
+
+# names of potentially dynamically loaded libraries
+set(JPEG_DYNAMIC \"libjpeg-9.dll\")
+set(PNG_DYNAMIC \"libpng16-16.dll\")
+set(TIFF_DYNAMIC \"libtiff-5.dll\")
+set(WEBP_DYNAMIC \"libwebp-4.dll\")
+
+### implementation ###
+
+add_library(SDL2_image
+    IMG.c
+    IMG_bmp.c
+    IMG_gif.c
+    IMG_jpg.c
+    IMG_lbm.c
+    IMG_pcx.c
+    IMG_png.c
+    IMG_pnm.c
+    IMG_svg.c
+    IMG_tga.c
+    IMG_tif.c
+    IMG_webp.c
+    IMG_xcf.c
+    IMG_xpm.c
+    IMG_xv.c
+    IMG_xxx.c
+    IMG_WIC.c
+    version.rc
+    )
+
+if (APPLE)
+    target_sources(SDL2_image PRIVATE
+        IMG_ImageIO.m
+    )
+    target_compile_options(SDL2_image BEFORE PRIVATE
+        "-x" "objective-c"
+    )
+endif()
+
+set_target_properties(SDL2_image PROPERTIES DEFINE_SYMBOL DLL_EXPORT)
+
+foreach(FORMAT ${SUPPORTED_FORMATS})
+    add_definitions(-DLOAD_${FORMAT})
+endforeach(FORMAT)
+
+# SDL
+find_path(SDL_INCLUDE_DIR SDL2/SDL.h)
+find_package(SDL2 CONFIG REQUIRED)
+
+include_directories(${SDL_INCLUDE_DIR})
+include_directories(${SDL_INCLUDE_DIR}/SDL2)
+include_directories(${CMAKE_SOURCE_DIR})
+
+target_link_libraries(SDL2_image SDL2::SDL2)
+
+# external dependencies
+foreach(DEPENDENCY IN LISTS DEPENDENCIES)
+    if(NOT USE_${DEPENDENCY})
+        continue()
+    endif()
+    find_package(${DEPENDENCY})
+
+    if(NOT DEFINED ${DEPENDENCY}_FLAG)
+        set(${DEPENDENCY}_FLAG ${DEPENDENCY})
+    endif()
+
+    add_definitions(-DLOAD_${${DEPENDENCY}_FLAG})
+    if(${DEPENDENCY}_FOUND)
+        message(STATUS "  --> linking statically.")
+        target_link_libraries(SDL2_image ${${DEPENDENCY}_LIBRARIES})
+    elseif(DEFINED ${DEPENDENCY}_DYNAMIC)
+        message(STATUS "  --> linking dynamically.")
+        add_definitions(-DLOAD_${${DEPENDENCY}_FLAG}_DYNAMIC=${${DEPENDENCY}_DYNAMIC})
+        set(RUNTIME_DEPENDENCIES ON)
+    else()
+        message(STATUS "  --> skipping.")
+    endif()
+endforeach(DEPENDENCY)
+
+if(DEFINED RUNTIME_DEPENDENCIES)
+    include_directories(VisualC/external/include)
+endif()
+
+
+install(TARGETS SDL2_image
+    EXPORT SDL2_image
+    RUNTIME DESTINATION bin
+    ARCHIVE DESTINATION lib
+    LIBRARY DESTINATION lib)
+
+install(FILES SDL_image.h DESTINATION include/SDL2 CONFIGURATIONS Release)
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/sdl2-image-config.cmake"
+[[include(CMakeFindDependencyMacro)
+find_dependency(SDL2 CONFIG)
+include("${CMAKE_CURRENT_LIST_DIR}/sdl2-image-targets.cmake")
+]])
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/sdl2-image-config.cmake DESTINATION share/sdl2-image)
+
+install(EXPORT SDL2_image
+    DESTINATION share/sdl2-image/
+    FILE sdl2-image-targets.cmake
+    NAMESPACE SDL2::
+)
+
+message(STATUS "Link-time dependencies:")
+message(STATUS "  " SDL2::SDL2)
+foreach(DEPENDENCY ${DEPENDENCIES})
+    if(${DEPENDENCY}_FOUND)
+        message(STATUS "  " ${DEPENDENCY})
+    endif()
+endforeach(DEPENDENCY)
+
+if(DEFINED RUNTIME_DEPENDENCIES)
+    message(STATUS "Run-time dependencies:")
+    foreach(DEPENDENCY ${DEPENDENCIES})
+        if(NOT ${DEPENDENCY}_FOUND AND DEFINED ${DEPENDENCY}_DYNAMIC)
+            message(STATUS "  " ${${DEPENDENCY}_DYNAMIC})
+        endif()
+    endforeach(DEPENDENCY)
+endif()