File: CMakeLists.txt

package info (click to toggle)
gdal 3.11.3%2Bdfsg-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 89,016 kB
  • sloc: cpp: 1,165,048; ansic: 208,864; python: 26,958; java: 5,972; xml: 4,611; sh: 3,776; cs: 2,508; yacc: 1,306; makefile: 213
file content (45 lines) | stat: -rw-r--r-- 2,152 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
include("${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/helpers/GdalCMakeMinimumRequired.cmake")
cmake_minimum_required(VERSION ${GDAL_CMAKE_VERSION_MIN}...${GDAL_CMAKE_VERSION_MAX})

if(NOT DEFINED PROJECT_SOURCE_DIR)
    # Standalone plugin building
    project(gdal_JP2KAK)
    include("${PROJECT_SOURCE_DIR}/../../cmake/helpers/SetupStandalonePlugin.cmake" )
    include(CheckDependentLibrariesKakadu)
    standalone_driver_finalize(GDAL_ENABLE_DRIVER_JP2KAK)
endif()

add_gdal_driver(TARGET gdal_JP2KAK
                SOURCES jp2kakdataset.cpp
                        jp2kak_headers.h
                        jp2kakdataset.h
                        subfile_source.h
                        vsil_target.h
                CORE_SOURCES jp2kakdrivercore.cpp
                PLUGIN_CAPABLE
                NO_SHARED_SYMBOL_WITH_CORE)

if(TARGET gdal_JP2KAK_core)
    target_include_directories(gdal_JP2KAK_core PRIVATE $<TARGET_PROPERTY:KDU::KDU,INTERFACE_INCLUDE_DIRECTORIES>)
    target_compile_definitions(gdal_JP2KAK_core PRIVATE $<TARGET_PROPERTY:KDU::KDU,INTERFACE_COMPILE_DEFINITIONS>)
    if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "x86_64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "AMD64")
        target_compile_definitions(gdal_JP2KAK_core PRIVATE -DKDU_X86_INTRINSICS)
    endif()
endif()

if(NOT TARGET gdal_JP2KAK)
    return()
endif()

gdal_standard_includes(gdal_JP2KAK)
gdal_target_link_libraries(gdal_JP2KAK PRIVATE KDU::KDU)

# this appears necessary on x64 machines to match the compilation of the library
# But for ARM we don't need to define KDU_NEON_INTRINSICS, because
# according to Compiling_Instructions.txt: "Note that this macro does not normally need to
#             be set explicitly, since it is automatically configured
#             by "kdu_arch.h" if the usual "__ARM_NEON__" is found"
# __ARM_NEON__ appears to be defined when NEON extensions available (https://developer.arm.com/documentation/dui0491/i/Compiler-specific-Features/Predefined-macros)
if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "x86_64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "AMD64")
    target_compile_definitions(gdal_JP2KAK PRIVATE -DKDU_X86_INTRINSICS)
endif()