[gdal-dev] link error with MrSID and ECW

Kai Pastor, DG0YT dg0yt at darc.de
Tue Feb 25 20:46:29 PST 2025


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()
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20250226/219eecef/attachment.htm>


More information about the gdal-dev mailing list