option(GDAL_VRT_ENABLE_RAWRASTERBAND "Whether to enable the VRTRawRasterBand functionality (access to raw files)" ON) add_gdal_driver( TARGET gdal_vrt BUILTIN SOURCES gdal_vrt.h vrtdataset.h vrtderivedrasterband.cpp vrtdriver.cpp vrtexpression.h vrtfilters.cpp vrtrasterband.cpp vrtsourcedrasterband.cpp vrtsources.cpp vrtwarped.cpp vrtdataset.cpp pixelfunctions.cpp vrtpansharpened.cpp vrtprocesseddataset.cpp vrtprocesseddatasetfunctions.cpp vrtmultidim.cpp vrtreclassifier.h vrtreclassifier.cpp ) gdal_standard_includes(gdal_vrt) if (GDAL_VRT_ENABLE_RAWRASTERBAND) target_sources(gdal_vrt PRIVATE vrtrawrasterband.cpp) target_compile_definitions(gdal_vrt PRIVATE GDAL_VRT_ENABLE_RAWRASTERBAND) else() target_compile_definitions(gdal_vrt PRIVATE GDAL_VRT_DISABLE_RAWRASTERBAND) endif() target_include_directories(gdal_vrt PRIVATE ${GDAL_RASTER_FORMAT_SOURCE_DIR}/raw $) if (GDAL_ENABLE_ARM_NEON_OPTIMIZATIONS) target_compile_definitions(gdal_vrt PRIVATE -DUSE_NEON_OPTIMIZATIONS) endif() if (GDAL_USE_EXPRTK) target_sources(gdal_vrt PRIVATE vrtexpression_exprtk.cpp) if (MSVC) set_source_files_properties(vrtexpression_exprtk.cpp PROPERTIES COMPILE_FLAGS "/bigobj") elseif(MINGW) set_source_files_properties(vrtexpression_exprtk.cpp PROPERTIES COMPILE_FLAGS "-Wa,-mbig-obj") endif() target_compile_definitions(gdal_vrt PRIVATE GDAL_VRT_ENABLE_EXPRTK) target_link_libraries(gdal_vrt PRIVATE ExprTk::ExprTk) endif() if (GDAL_USE_MUPARSER) target_sources(gdal_vrt PRIVATE vrtexpression_muparser.cpp) gdal_target_link_libraries(gdal_vrt PRIVATE muparser::muparser) target_compile_definitions(gdal_vrt PRIVATE GDAL_VRT_ENABLE_MUPARSER) endif() set(GDAL_DATA_FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/gdalvrt.xsd ) set_property( TARGET ${GDAL_LIB_TARGET_NAME} APPEND PROPERTY RESOURCE "${GDAL_DATA_FILES}") if (GDAL_USE_GEOS) gdal_target_link_libraries(gdal_vrt PRIVATE ${GEOS_TARGET}) target_compile_definitions(gdal_vrt PRIVATE -DHAVE_GEOS=1) endif () include(TargetPublicHeader) target_public_header(TARGET gdal HEADERS vrtdataset.h gdal_vrt.h) # because of use of GDALOpenVerticalShiftGrid set_property(SOURCE vrtwarped.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) if (NOT GDAL_ENABLE_DRIVER_VRT) target_compile_definitions(gdal_vrt PRIVATE -DNO_OPEN) endif()