I didn't pay much attention to the CMake code. Now:

You don't need to deal with string(CONCAT ...). Normally you just need to
- treat VCPKG_<LANG>_FLAGS as CMake string (because this follows CMAKE_<LANG>_FLAGS), - treat as VCPKG_CMAKE_CONFIGURE_OPTIONS as CMake list, *quoting whole list items* if needed.

i.e.
list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS
"-DMRSID_INCLUDE_DIR=${CMAKE_CURRENT_LIST_DIR}/../sdk/MrSID_DSDK-9.5.5.5244-win32-vc17/Raster_DSDK/include"
    "-DMRSID_LIBRARY=${CMAKE_CURRENT_LIST_DIR}/../sdk/MrSID_DSDK-9.5.5.5244-win32-vc17/Raster_DSDK/lib/lti_dsdk.lib"
    ...
)

Am 25.02.25 um 12:03 schrieb Michael Katz:
I find the quoting rules in CMake's set, string, and CONCAT to be counter-intuitive. I wish CMake could have been built on top of Python, JavaScript, or some other well-known language instead of being its own strange thing.

...

        string(
            CONCAT x
    "
    
\"-DMRSID_INCLUDE_DIR=${CMAKE_CURRENT_LIST_DIR}/../sdk/MrSID_DSDK-9.5.5.5244-win32-vc17/Raster_DSDK/include\""
    "
    
\"-DMRSID_LIBRARY=${CMAKE_CURRENT_LIST_DIR}/../sdk/MrSID_DSDK-9.5.5.5244-win32-vc17/Raster_DSDK/lib/lti_dsdk.lib\""
    " \"-DGDAL_USE_MRSID=ON\""
    " \"-DFRMT_mrsid=ON\""
    "
    
\"-DECW_INCLUDE_DIR=${CMAKE_CURRENT_LIST_DIR}/../sdk/ecw/Hexagon/ERDAS_ECW_JPEG_2000_SDK_5.5.0/Desktop_Read-Only/include\""
    "
    
\"-DECW_LIBRARY=${CMAKE_CURRENT_LIST_DIR}/../sdk/ecw/Hexagon/ERDAS_ECW_JPEG_2000_SDK_5.5.0/Desktop_Read-Only/lib/vc141/Win32/NCSEcw.lib\""
    " \"-DGDAL_USE_ECW=ON\""
    " \"-DFRMT_ecw=ON\""
        )
        set(VCPKG_CMAKE_CONFIGURE_OPTIONS
    "${VCPKG_CMAKE_CONFIGURE_OPTIONS} ${x}" )
        set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DFRMT_mrsid=ON")
        set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DFRMT_mrsid=ON")
        set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DFRMT_ecw=ON")
        set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DFRMT_ecw=ON")
    endif()

_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to