빌드 힌트 (cmake)

빌드 요구 사항

최소 요구 사항:

  • CMake 3.10 이상 버전, 그리고 관련 빌드 체계 (make, ninja, Visual Studio 등등)

  • C99 컴파일러

  • C++11 컴파일러

  • PROJ 6.0 이상 버전

그러나 대부분의 빌드에 선택적인 라이브러리 여러 개를 추가할 것을 강력히 추천합니다: SQLite3, expat, libcurl, zlib, libtiff, libgeotiff, libpng, libjpeg 등등

CMake

CMake 빌드 체계를 통해 거의 모든 플랫폼에서 GDAL을 컴파일해서 설치할 수 있습니다. 소스 배포 압축 파일을 압축 해제한 다음 소스 트리 구조로 들어가십시오:

cd gdal-{VERSION}

빌드 디렉터리를 생성한 다음 해당 디렉터리로 가십시오:

mkdir build
cd build

이제 빌드 디렉터리에서 CMake를 환경설정하고, 바이너리를 빌드해서 설치할 수 있습니다:

cmake .. cmake –build . cmake –build . –target install

윈도우에서는 생성기(generator)를 지정해야 할 수도 있습니다:

cmake -G “Visual Studio 15 2017” ..

의존성이 사용자 지정 위치에 설치되어 있다면, include 디렉터리와 라이브러리를 가리키는 경로를 지정하십시오:

cmake -DSQLITE3_INCLUDE_DIR=/opt/SQLite/include -DSQLITE3_LIBRARY=/opt/SQLite/lib/libsqlite3.so ..

아니면, 사용자 지정 접두어를 지정해도 됩니다:

cmake -DCMAKE_PREFIX_PATH=/opt/SQLite ..

기존에 캐시된 변수를 CMake의 -U 스위치를 사용해서 설정 해제시킬 수 있습니다. 예를 들어 와일드카드 문자를 사용한다면:

cmake .. -UGDAL_USE_*

Warning

의존성을 추가/수정/제거하기 위해 GDAL 환경설정을 반복하는 경우, 이전에 실행했던 캐시 변수 일부가 CMakeCache.txt에 남아서 새 설정과 충돌할 수도 있습니다. Cmake 실행 도중 이상한 오류가 발생하는 경우, CMakeCache.txt를 제거해서 깨끗한 상태에서 시작해볼 수도 있습니다.

CMake 프로젝트에서 GDAL을 사용하는 방법에 대해서는 CMake 프로젝트에서 GDAL 사용하기 를 참조하십시오.

CMake 일반 환경설정 옵션

CMake 환경설정 옵션들은 -D<var>=<value> 명령어를 통해 제공됩니다. 빌드 디렉터리에서 cmake -LAH 명령어를 실행하면 캐시된 모든 항목들을 볼 수 있습니다.

BUILD_APPS=ON

응용 프로그램을 빌드합니다. 기본값은 ON 입니다.

BUILD_SHARED_LIBS

공유 GDAL 라이브러리를 빌드합니다. 기본값은 ON 입니다. BUILD_SHARED_LIBS 를 위한 CMake 문서도 참조하세요.

CMAKE_BUILD_TYPE

빌드 유형을 선택합니다. 다음과 같은 옵션들이 있습니다: None (기본값), Debug, Release, RelWithDebInfo, 또는 MinSizeRel. CMAKE_BUILD_TYPE. 을 위한 CMake 문서도 참조하세요.

Note

환경설정 도중 -DCMAKE_BUILD_TYPE=Release 로 (또는 비슷한 옵션으로) 또는 CMake 다중 환경설정(multi-configuration) 빌드 도구의 --config Release 로 지정해주지 않을 경우, 기본 빌드는 최적화되지 않습니다.

CMAKE_C_COMPILER

C 컴파일러입니다. 비주얼 스튜디오 같은 몇몇 생성기의 경우 무시됩니다.

CMAKE_C_FLAGS

모든 빌드 유형 도중 C 컴파일러가 사용하는 플래그입니다. CFLAGS 환경 변수에 의해 초기화됩니다.

CMAKE_CXX_COMPILER

C++ 컴파일러입니다. 비주얼 스튜디오 같은 몇몇 생성기의 경우 무시됩니다.

CMAKE_CXX_FLAGS

모든 빌드 유형 도중 C++ 컴파일러가 사용하는 플래그입니다. CXXFLAGS 환경 변수에 의해 초기화됩니다.

CMAKE_INSTALL_PREFIX

소프트웨어 설치 위치를 설정합니다. 유닉스 계열의 기본값은 /usr/local/ 입니다.

CMAKE_PREFIX_PATH

외부 의존성을 검색할 때 검색 대상이 될 설치 접두어(prefix)를 지정하는 디렉터리 목록입니다.

CMake 3.12 버전부터, 특정 패키지를 위한 접두어를 정의하는 데 <Packagename>_ROOT 변수를 사용할 수도 있습니다. https://cmake.org/cmake/help/latest/release/3.12.html?highlight=root#commands 페이지를 참조하세요.

ENABLE_IPO=OFF

사용할 수 있는 경우, 컴파일러의 프로시저 간 최적화(IPO; interprocedural optimization) 를 사용하는 빌드 라이브러리입니다. 기본값은 OFF입니다.

CMake 패키지 의존 옵션

일반적으로, 패키지(외부 의존성)가 CMake가 사용하는 기본 위치에 있을 경우 패키지를 자동으로 발견할 것입니다. CMAKE_PREFIX_PATH 변수를 가진 예시에 대해서도 이렇게 조정할 수 있습니다.

CMake 3.12 버전부터, <Packagename>_ROOT 변수를 이용해서 특정 패키지를 위한 접두어를 정의할 수도 있습니다. https://cmake.org/cmake/help/latest/release/3.12.html?highlight=root#commands 를 읽어보세요. _ROOT, _INCLUDE_DIR 및 _LIBRARY 변수의 경우 패키지 이름의 대소문자를 구분한다는 사실을 기억하십시오.

다음 옵션을 설정하면 검색 가능한 대부분의 의존성을 비활성화시킬 수도 있습니다:

GDAL_USE_<Packagename_in_upper_case>:BOOL=ON/OFF

검색된 의존성을 GDAL 빌드에 사용할 수 있는지 여부를 제어합니다.

다음 옵션을 OFF로 설정하면 GDAL이 기본적으로 (필수 의존성인 PROJ를 제외한) 어떤 외부 의존성도 사용하지 않도록 설정할 수도 있습니다. 그 다음 GDAL_USE_<Packagename_in_upper_case>:BOOL=ON 을 사용하면 개별 라이브러리가 각각 활성화될 것입니다.

GDAL_USE_EXTERNAL_LIBS:BOOL=ON/OFF

CMakeCache.txt를 생성하기 전에 이 옵션을 설정해야 합니다. CMakeCache.txt를 생성한 다음 이 옵션을 OFF로 설정하면 이전에 탐지된 라이브러리들의 활성화를 취소하기 위해 CMake를 “-UGDAL_USE_*” 로 재호출해야 합니다.

Armadillo

Armadillo C++ 라이브러리는 TPS(Thin Plate Spline) 변환기 관련 계산 속도를 높이기 위해 쓰입니다. 자세한 내용은 https://cmake.org/cmake/help/latest/module/FindArmadillo.html 을 참조하세요. Conda-Forge 의존성을 사용하는 윈도우 빌드에서는 다음 패키지들도 설치해야 할 수도 있습니다: blas blas-devel libblas libcblas liblapack liblapacke

GDAL_USE_ARMADILLO=ON/OFF

Armadillo를 사용할지 여부를 제어합니다. Armadillo가 검색되는 경우 기본값은 ON입니다.

Arrow

(지오)애로우 IPC 파일 포맷 / 스트림(지오)파켓 드라이버는 아파치 애로우 C++ 라이브러리를 요구합니다. CMAKE_PREFIX_PATH 변수에 설치 접두어를 지정하십시오.

GDAL_USE_ARROW=ON/OFF

애로우를 사용할지 여부를 제어합니다. 애로우가 존재하는 경우 기본값은 ON입니다.

Blosc

Blosc 는 서로 다른 (LZ4, Snappy, Zlib, Zstd 등등) 백엔드를 가진, 메타 압축을 제공하는 라이브러리입니다. Zarr 드라이버가 이 라이브러리를 사용합니다.

BLOSC_INCLUDE_DIR

blosc.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

BLOSC_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_BLOSC=ON/OFF

Blosc를 사용할지 여부를 제어합니다. Blosc가 검색되는 경우 기본값은 ON입니다.

CFITSIO

C FITS I/OFITS – 유연한 이미지 전송 시스템(Flexible Image Transport System) 드라이버를 사용하기 위한 필수 라이브러리입니다. pkg-config으로 탐지할 수 있습니다.

CFITSIO_INCLUDE_DIR

fitsio.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

CFITSIO_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_CFITSIO=ON/OFF

CFITSIO를 사용할지 여부를 제어합니다. CFITSIO가 검색되는 경우 기본값은 ON입니다.

CharLS

CharLS 는 비손실(lossless) 및 준-비손실(near-lossless) 이미지 압축 및 압축해제를 위한 JPEG-LS 표준을 C++로 구현(implementation)한 라이브러리입니다. JPEGLS 드라이버가 사용합니다. pkg-config으로 탐지할 수 있습니다.

CHARLS_INCLUDE_DIR

charls/charls.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

CHARLS_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_CHARLS=ON/OFF

CharLS를 사용할지 여부를 제어합니다. CharLS가 검색되는 경우 기본값은 ON입니다.

Crnlib

Crnlib / crunchDDS – DirectDraw Surface 드라이버를 사용하기 위한 필수 라이브러리입니다.

Crnlib_INCLUDE_DIR

crunch/crnlib.h 헤더 파일을 가진 Crnlib include 디렉터리를 가리키는 경로입니다.

Crnlib_LIBRARY

링크될 Crnlib 라이브러리를 가리키는 경로입니다.

GDAL_USE_CRNLIB=ON/OFF

Crnlib를 사용할지 여부를 제어합니다. Crnlib가 검색되는 경우 기본값은 ON입니다.

CURL

libcurl 은 모든 (HTTP 등등) 네트워크 접근에 필수적인 라이브러리입니다.

CURL_INCLUDE_DIR

curl 디렉터리를 가진 include 디렉터리를 가리키는 경로입니다.

CURL_LIBRARY_RELEASE

libcurl.dll, libcurl.so, libcurl.lib, 또는 다른 이름 같은 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_CURL=ON/OFF

Curl을 사용할지 여부를 제어합니다. Curl이 검색되는 경우 기본값은 ON입니다.

CryptoPP

Crypto++ 는 구글 클라우드의 인증 메소드 가운데 일부가 사용하는 RSA SHA256 서명 기능에 쓰일 수 있는 라이브러리입니다. EEDAI - 구글 어스 엔진 데이터 API 이미지 이미지 또는 /vsigs/ 가상 파일 시스템을 필수적으로 사용해야 할 수도 있습니다. /vsicrypt/ 가상 파일 시스템에서도 필수적으로 사용해야 합니다.

CRYPTOPP_INCLUDE_DIR

기반(base) include 디렉터리를 가리키는 경로입니다.

CRYPTOPP_LIBRARY_RELEASE

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 CRYPTOPP_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

CRYPTOPP_USE_ONLY_CRYPTODLL_ALG=ON/OFF

기본값은 OFF입니다. cryptopp.dll에 링크하는 경우 필수적으로 ON으로 설정해야 할 수도 있습니다.

GDAL_USE_CRYPTOPP=ON/OFF

CryptoPP를 사용할지 여부를 제어합니다. CryptoPP가 검색되는 경우 기본값은 ON입니다.

Deflate

libdeflate 는 비손실 Deflate/Zip 압축 알고리즘을 제공하는 압축 라이브러리입니다. ZLib보다 빠른 성능을 제공하지만, 완전히 대체할 수는 없기 때문에 결과적으로 ZLib을 보조하는 형태로 사용해야만 합니다.

Deflate_INCLUDE_DIR

libdeflate.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

Deflate_LIBRARY_RELEASE

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 Deflate_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_DEFLATE=ON/OFF

Deflate를 사용할지 여부를 제어합니다. Deflate가 검색되는 경우 기본값은 ON입니다.

ECW

Hexagon ECW SDK(사유(私有) 소스)는 ECW – 향상된 압축 웨이블릿 (.ecw) 드라이버를 사용하기 위해 필수적인 라이브러리입니다. 현재 ECW SDK 3.3과 5.5만 지원합니다.

ECW SDK 5.5버전의 경우, ECW_ROOT 또는 CMAKE_PREFIX_PATH 환경 변수가 일반적으로 ERDAS-ECW_JPEG_2000_SDK-5.5.0/Desktop_Read-Only 로 끝나는 include 및 lib 하위 디렉터리들이 있는 디렉터리를 가리켜야 합니다.

ECW_INCLUDE_DIR

NCSECWClient.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

ECW_LIBRARY

libNCSEcw 라이브러리 파일을 가리키는 경로

ECWnet_LIBRARY

libNCSCnet 라이브러리 파일을 가리키는 경로 (SDK 3.3에서만 필요)

ECWC_LIBRARY

libNCSEcwC 라이브러리 파일을 가리키는 경로 (SDK 3.3에서만 필요)

NCSUtil_LIBRARY

libNCSUtil 라이브러리 파일을 가리키는 경로 (SDK 3.3에서만 필요)

GDAL_USE_ECW=ON/OFF

ECW를 사용할지 여부를 제어합니다. ECW가 검색되는 경우 기본값은 ON입니다.

EXPAT

Expat 은 스트림 향(stream-oriented) XML 파서(parser; 구문 분석기)로, 주요 OGR 드라이버(GML, GeoRSS, GPX, KML, LVBAG, OSM, ODS, SVG, WFS, XSLX 등등)의 XML 파싱 기능을 활성화하기 위해 필수적인 라이브러리입니다. 이 라이브러리를 설치할 것을 강력히 추천합니다. ILI 또는 GMLAS 같은 기타 드라이버에는 XercesC 라이브러리가 필수입니다.

EXPAT_INCLUDE_DIR

expat.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

EXPAT_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_EXPAT=ON/OFF

EXPAT을 사용할지 여부를 제어합니다. EXPAT이 검색되는 경우 기본값은 ON입니다.

FileGDB

FileGDB SDK (사유 소스)는 ESRI 파일 지리 데이터베이스 (FileGDB) 드라이버를 사용하기 위해 필수적인 라이브러리입니다. (외부 필수 요소가 없는 ESRI 파일 지리 데이터베이스 (OpenFileGDB) 드라이버와 혼동하지 마십시오.)

FileGDB_ROOT 또는 CMAKE_PREFIX_PATH 환경 변수가 SDK 디렉터리를 가리켜야 합니다.

FileGDB_INCLUDE_DIR

FileGDBAPI.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

FileGDB_LIBRARY

라이브러리 파일을 가리키는 경로

FileGDB_LIBRARY_RELEASE

배포판 라이브러리 파일을 가리키는 경로 (윈도우에서만)

FileGDB_LIBRARY_DEBUG

디버그 라이브러리 파일을 가리키는 경로 (윈도우에서만)

GDAL_USE_FILEGDB=ON/OFF

FileGDB를 사용할지 여부를 제어합니다. FileGDB가 검색되는 경우 기본값은 ON입니다.

FreeXL

FreeXLXLS - 마이크로소프트 엑셀 포맷 드라이버를 사용하기 위해 필수적인 라이브러리입니다.

FREEXL_INCLUDE_DIR

freexl.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

FREEXL_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_FREEXL=ON/OFF

FreeXL을 사용할지 여부를 제어합니다. FreeXL이 검색되는 경우 기본값은 ON입니다.

FYBA

OpenFyba노르웨이 SOSI 표준 드라이버를 빌드하는 데 필요한 라이브러리입니다.

FYBA_INCLUDE_DIR

fyba.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

FYBA_FYBA_LIBRARY

fyba 라이브러리 파일을 가리키는 경로

FYBA_FYGM_LIBRARY

fygm 라이브러리 파일을 가리키는 경로

FYBA_FYUT_LIBRARY

fyut 라이브러리 파일을 가리키는 경로

GDAL_USE_FYBA=ON/OFF

FYBA를 사용할지 여부를 제어합니다. FYBA가 검색되는 경우 기본값은 ON입니다.

GEOTIFF

GTiff – GeoTIFF 파일 포맷 드라이버는 물론 몇몇 기타 드라이버를 사용하기 위해 필수적인 라이브러리입니다. 이 라이브러리를 찾을 수 없는 경우, libgeotiff 내부 복사본을 사용할 것입니다.

GEOTIFF_INCLUDE_DIR

libgeotiff 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

GEOTIFF_LIBRARY_RELEASE

geotiff.dll, libgeotiff.so, geotiff.lib, 또는 다른 이름 같은 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 GEOTIFF_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_GEOTIFF=ON/OFF

외부 libgeotiff를 사용할지 여부를 제어합니다. 외부 libgeotiff가 검색되는 경우 기본값은 ON입니다.

GDAL_USE_GEOTIFF_INTERNAL=ON/OFF

내부 libgeotiff 복사본을 사용할지 여부를 제어합니다. 외부 libgeotiff가 설치되지 않은 경우 기본값은 ON입니다.

GEOS

GEOS 는 2차원 벡터 도형 상에서 연산을 수행하기 위한 C++ 라이브러리입니다. OGR에서 사용할 수 있는 대부분의 (교차, 버퍼 등등) 도형 처리 연산을 위한 백엔드로 쓰입니다. geos-config 프로그램으로 이 라이브러리를 탐지할 수 있습니다.

GEOS_INCLUDE_DIR

geos_c.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

GEOS_LIBRARY

공유 또는 정적 라이브러리 파일(libgeos_c)을 가리키는 경로입니다.

GDAL_USE_GEOS=ON/OFF

GEOS를 사용할지 여부를 제어합니다. GEOS가 검색되는 경우 기본값은 ON입니다.

GIF

giflibGIF – 그래픽 교환 포맷(Graphics Interchange Format) 드라이버를 사용하기 위해 필수적인 라이브러리입니다. 이 라이브러리를 찾을 수 없는 경우, 내부 복사본을 사용할 것입니다.

GIF_INCLUDE_DIR

gif_lib.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

GIF_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_GIF=ON/OFF

외부 giflib을 사용할지 여부를 제어합니다. 외부 giflib이 검색되는 경우 기본값은 ON입니다.

GDAL_USE_GIF_INTERNAL=ON/OFF

내부 giflib 복사본을 사용할지 여부를 제어합니다. 외부 giflib이 설치되지 않은 경우 기본값은 ON입니다.

GTA

GTAGTA - 일반 태그 배열(Generic Tagged Arrays) 드라이버를 사용하기 위해 필수적인 라이브러리입니다.

GTA_INCLUDE_DIR

gta/gta.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

GTA_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_GTA=ON/OFF

GTA를 사용할지 여부를 제어합니다. GTA가 검색되는 경우 기본값은 ON입니다.

HEIF

HEIF (1.1 이상 버전)는 HEIF / HEIC – ISO/IEC 23008-12:2017 고효율 이미지 파일 포맷 드라이버가 사용하는 라이브러리입니다. pkg-config으로 탐지할 수 있습니다.

HEIF_INCLUDE_DIR

libheif/heif.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

HEIF_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_HEIF=ON/OFF

HEIF를 사용할지 여부를 제어합니다. HEIF가 검색되는 경우 기본값은 ON입니다.

HDF4

HDF4HDF4 – 계층적 데이터 형식(Hierarchical Data Format) 배포판 4 (HDF4) 드라이버를 사용하기 위해 필요한 C 라이브러리입니다.

HDF4_INCLUDE_DIR

hdf.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

HDF4_df_LIBRARY_RELEASE

공유 또는 정적 dfalt 또는 df 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 HDF4_df_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

HDF4_mfhdf_LIBRARY_RELEASE

공유 또는 정적 mfhdfalt 또는 mfhdf 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 HDF4_mfhdf_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

HDF4_xdr_LIBRARY_RELEASE

공유 또는 정적 xdr 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 HDF4_xdr_LIBRARY_DEBUG 변수를 지정할 수도 있습니다. 리눅스 빌드의 경우 일반적으로 필요없습니다.

HDF4_szip_LIBRARY_RELEASE

공유 또는 정적 szip 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 HDF4_szip_LIBRARY_DEBUG 변수를 지정할 수도 있습니다. 리눅스 빌드의 경우 일반적으로 필요없습니다.

HDF4_COMPONENTS

이 옵션의 값은 기본값이 df;mfhdf;xdr;szip 으로 되어 있는 목록입니다. HDF4 링크 작업에 서로 다른 라이브러리들이 필수인 경우 사용자 지정할 수도 있습니다. 이 경우 라이브러리 파일을 환경설정하기 위해 HDF4_{comp_name}_LIBRARY_[RELEASE/DEBUG] 변수를 사용할 수 있을 것입니다.

GDAL_USE_HDF4=ON/OFF

HDF4를 사용할지 여부를 제어합니다. HDF4가 검색되는 경우 기본값은 ON입니다.

HDF5

HDF5HDF5 – 계층적 데이터 형식(Hierarchical Data Format) 배포판 5 (HDF5)BAG – 수심 측량 속성 그리드(Bathymetry Attributed Grid) 드라이버를 사용하기 위해 필요한 C 라이브러리입니다. KEA 드라이버를 사용하기 위해서는 HDF5 CXX 라이브러리가 필요합니다. https://cmake.org/cmake/help/latest/module/FindHDF5.html 모듈을 사용해서 HDF5 라이브러리를 탐지할 수 있습니다.

GDAL_USE_HDF5=ON/OFF

HDF5를 사용할지 여부를 제어합니다. HDF5가 검색되는 경우 기본값은 ON입니다.

HDFS

Hadoop File System/vsihdfs/ 가상 파일 시스템을 사용하기 위해 필요한 네이티브 라이브러리입니다.

HDFS_INCLUDE_DIR

hdfs.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

HDFS_LIBRARY

공유 또는 정적 hdfs 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_HDFS=ON/OFF

HDFS를 사용할지 여부를 제어합니다. HDFS가 검색되는 경우 기본값은 ON입니다.

Iconv

Iconv 라이브러리는 텍스트의 인코딩을 변환하는 데 쓰입니다. 일반적으로 유닉스 계열 시스템에서는 시스템 라이브러리로 사용할 수 있습니다. 윈도우에서는, GDAL이 운영 체제의 API를 이용해서 몇몇 기본(base) 변환을 할 수 있지만, Iconv를 사용하면 더 많은 변환 기능을 쓸 수 있습니다.

Iconv_INCLUDE_DIR

iconv.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

Iconv_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_ICONV=ON/OFF

Iconv를 사용할지 여부를 제어합니다. Iconv가 검색되는 경우 기본값은 ON입니다.

IDB

IDB(Informix DataBase) 클라이언트 SDK(사유 소스)는 IDB 드라이버를 빌드하기 위해 필요합니다. IDB_ROOT or CMAKE_PREFIX_PATH 환경 변수가 SDK 디렉터리를 가리켜야 합니다.

IDB_INCLUDE_DIR

c++/it.h 헤더 파일을 가진 (전형적으로 incl 로 끝나는) include 디렉터리를 가리키는 경로입니다.

IDB_IFCPP_LIBRARY

(전형적으로 lib/c++ 하위 디렉터리에 있는) ifc++ 라이브러리 파일을 가리키는 경로

IDB_IFDMI_LIBRARY

(전형적으로 lib/dmi 하위 디렉터리에 있는) ifdmi 라이브러리 파일을 가리키는 경로

IDB_IFSQL_LIBRARY

(전형적으로 lib/esql 하위 디렉터리에 있는) ifsql 라이브러리 파일을 가리키는 경로

IDB_IFCLI_LIBRARY

(전형적으로 lib/cli 하위 디렉터리에 있는) ifcli 라이브러리 파일을 가리키는 경로

GDAL_USE_IDB=ON/OFF

IDB를 사용할지 여부를 제어합니다. IDB가 검색되는 경우 기본값은 ON입니다.

JPEG

libjpeg은 JPEG – JPEG JFIF 파일 포맷 드라이버를 사용하기 위해 필수적인 라이브러리로, 몇몇 다른 (GPKG – 지오패키지 래스터, MRF – 메타 래스터 포맷, 내부 libtiff 등등) 드라이버도 사용할 수 있습니다. 검색되지 않을 경우, libjpeg의 내부 복사본(6b)을 사용할 것입니다. 최적의 성능을 발휘하려면 libjpeg-turbo 를 사용할 것을 강력히 권장합니다. 이 라이브러리를 탐지하는 방법에 대해 더 자세히 알고 싶다면 https://cmake.org/cmake/help/latest/module/FindJPEG.html 을 읽어보십시오.

Note

libjpeg-turbo를 사용하는 경우, JPEG_LIBRARY[_RELEASE/_DEBUG]가 TurboJPEG가 아니라 libjpeg ABI를 가진 라이브러리를 가리켜야 합니다. 그 차이점에 대해서는 https://libjpeg-turbo.org/About/TurboJPEG 을 참조하세요.

JPEG_INCLUDE_DIR

jpeglib.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

JPEG_LIBRARY_RELEASE

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 JPEG_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_JPEG=ON/OFF

외부 libjpeg을 사용할지 여부를 제어합니다. 외부 libjpeg이 검색되는 경우 기본값은 ON입니다.

GDAL_USE_JPEG_INTERNAL=ON/OFF

내부 libjpeg 복사본을 사용할지 여부를 제어합니다. 외부 libjpeg이 검색되지 않는 경우 기본값은 ON입니다.

JPEG12

libjpeg-12 비트는 12비트 심도의 JPEG 이미지를 처리하기 위해 JPEG – JPEG JFIF 파일 포맷, (내부 libtiff를 사용하는 경우) GTiff – GeoTIFF 파일 포맷, JPEG – JPEG JFIF 파일 포맷, MRF – 메타 래스터 포맷NITF – 국립 영상 전송 포맷 드라이버가 사용하는 라이브러리입니다. 이 라이브러리는 내부 libjpeg(6b)과 함께 사용할 경우에만 지원됩니다. 정규 8비트 JPEG에 대해 외부 또는 내부 libjpeg을 사용할 경우에만 이 라이브러리를 독립적으로 사용할 수 있습니다.

GDAL_USE_JPEG12_INTERNAL=ON/OFF

내부 libjpeg-12 복사본을 사용할지 여부를 제어합니다. 기본값은 ON입니다.

JSON-C

json-c 는 JSON 콘텐츠를 읽고 쓰기 위해 필수적인 라이브러리입니다. pkg-config으로 탐지할 수 있습니다. 검색되지 않을 경우, json-c의 내부 복사본을 사용할 것입니다.

JSONC_INCLUDE_DIR

json.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

JSONC_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_JSONC=ON/OFF

JSON-C를 사용할지 여부를 제어합니다. JSON-C가 검색되는 경우 기본값은 ON입니다.

GDAL_USE_JSONC_INTERNAL=ON/OFF

내부 JSON-C 복사본을 사용할지 여부를 제어합니다. 외부 JSON-C가 검색되지 않는 경우 기본값은 ON입니다.

JXL

libjxl <https://github.com/libjxl/libjxl> GTiff – GeoTIFF 파일 포맷 드라이버가 내부 libtiff를 대상으로 빌드된 경우 사용하는 라이브러리입니다. pkg-config으로 탐지할 수 있습니다.

JXL_INCLUDE_DIR

jxl/decode.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

JXL_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_JXL=ON/OFF

JXL을 사용할지 여부를 제어합니다. JXL이 검색되는 경우 기본값은 ON입니다.

KDU

카카두(Kakadu)는 JP2KAK – 카카두 기반 JPEG2000 드라이버JPIPKAK - JPIP 스트리밍 드라이버를 사용하기 위해 필수적인 (사유 소스) 라이브러리입니다. 표준화된 설치 지침(install layout)도 없고 정해진 라이브러리 파일명도 없기 때문에 카카두 요소를 탐지하기는 조금 어렵습니다. 현재 리눅스, 맥OS 그리고 윈도우 x86_64 빌드에서만 KDU_ROOT 변수로부터 카카두 요소를 자동적으로 검색하도록 구현되어 있습니다. 다른 플랫폼의 경우, 사용자가 직접 KDU_LIBRARY와 KDU_AUX_LIBRARY 변수를 지정해줘야 합니다.

KDU_INCLUDE_DIR

카카두 빌드 트리의 루트를 가리키는 경로입니다. coresys/common/kdu_elementary.h 헤더 파일이 이 경로에 있어야 합니다.

KDU_LIBRARY

유닉스의 경우 libkdu_vXYR.so 또는 윈도우의 경우 kdu_vXYR.lib (이때 X.Y는 카카두 버전입니다) 같은 이름의 공유 라이브러리 파일을 가리키는 경로입니다.

KDU_AUX_LIBRARY

유닉스의 경우 libkdu_aXYR.so 또는 윈도우의 경우 kdu_aXYR.lib (이때 X.Y는 카카두 버전입니다) 같은 이름의 공유 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_KDU=ON/OFF

KDU를 사용할지 여부를 제어합니다. KDU가 검색되는 경우 기본값은 ON입니다.

KEA

KEAKEA 드라이버를 사용하기 위해 필수적인 라이브러리입니다. HDF5 CXX 라이브러리도 필수적입니다.

KEA_INCLUDE_DIR

libkea/KEACommon.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

KEA_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_KEA=ON/OFF

KEA를 사용할지 여부를 제어합니다. KEA가 검색되는 경우 기본값은 ON입니다.

LERC

LERC (V2)은 (RGB 또는 바이트만이 아니라) 모든 픽셀 유형에 대해 빠른 인코딩과 디코딩을 지원하는 오픈 소스 이미지 또는 래스터 포맷입니다. 사용자가 인코딩 도중 픽셀 당 최대 압축 오류를 설정하기 때문에, (사용자가 정의한 오류 범위 안에서) 원본 입력 이미지의 정확도를 보전합니다.

Warning

현재 (내부 LERC 복사본이 필수적인) MRF – 메타 래스터 포맷 드라이버가 이용할 수 없기 때문에 외부 LERC 라이브러리 사용을 권장하지 않습니다. 내부 LERC 복사본도 이용할 수 있는 내부 libtiff만 외부 LERC 라이브러리를 이용할 수 있습니다.

LERC_INCLUDE_DIR

Lerc_c_api.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

LERC_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_LERC=ON/OFF

LERC (V2)를 사용할지 여부를 제어합니다. LERC (V2)가 검색되는 경우 기본값은 OFF 입니다.

GDAL_USE_LERC_INTERNAL=ON/OFF

LERC (V2) 내부 라이브러리를 사용할지 여부를 제어합니다. GDAL_USE_LERC 옵션이 ON으로 설정돼 있지 않는 한 기본값은 ON입니다.

LERCV1

MRF – 메타 래스터 포맷 드라이버가 사용하는 내부 라이브러리입니다. LERC v1 압축을 제공합니다.

GDAL_USE_LERCV1_INTERNAL=ON/OFF

Lerc V1 내부 라이브러리를 사용할지 여부를 제어합니다. 기본값은 ON입니다.

LibKML

LibKMLLIBKML 드라이버 (.kml .kmz) 드라이버를 사용하기 위해 필수적인 라이브러리입니다. pkg-config으로 탐지할 수 있습니다.

LIBKML_INCLUDE_DIR

기반 include 디렉터리를 가리키는 경로입니다.

LIBKML_BASE_LIBRARY

kmlbase 용 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

LIBKML_DOM_LIBRARY

kmldom 용 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

LIBKML_ENGINE_LIBRARY

kmlengine 용 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_LIBKML=ON/OFF

LibKML을 사용할지 여부를 제어합니다. LibKML이 검색되는 경우 기본값은 ON입니다.

LibLZMA

LibLZMA 는 비손실 LZMA2 압축 알고리즘을 제공하는 압축 라이브러리입니다. 내부 libtiff 라이브러리 또는 Zarr 드라이버가 이 라이브러리를 사용합니다.

LIBLZMA_INCLUDE_DIR

lzma.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

LIBLZMA_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_LIBLZMA=ON/OFF

LibLZMA를 사용할지 여부를 제어합니다. LibLZMA가 검색되는 경우 기본값은 ON입니다.

LibXml2

LibXml2 처리 라이브러리는 몇몇 (PDF, GMLAS, GML OGR VRT) 드라이버에서 XML 스키마를 대상으로 XML 파일의 무결성 검증을 수행하는 데 사용되며, 또 GMLJP2v2 세대에서 고급 기능을 사용하기 위해 쓰입니다.

LIBXML2_INCLUDE_DIR

기반 include 디렉터리를 가리키는 경로입니다.

LIBXML2_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_LIBXML2=ON/OFF

LibXml2를 사용할지 여부를 제어합니다. LibXml2가 검색되는 경우 기본값은 ON입니다.

LURATECH

Luratech JPEG2000 SDK(사유 소스)는 JP2Lura – Lurawave 기반 JPEG2000 드라이버 드라이버를 사용하기 위해 필수적인 라이브러리입니다.

LURATECH_ROOT 또는 CMAKE_PREFIX_PATH 환경 변수는 SDK 디렉터리를 가리켜야 합니다.

LURATECH_INCLUDE_DIR

lwf_jp2.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

LURATECH_LIBRARY

lib_lwf_jp2.a / lwf_jp2.lib 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_LURATECH=ON/OFF

LURATECH를 사용할지 여부를 제어합니다. LURATECH가 검색되는 경우 기본값은 ON입니다.

LZ4

LZ4 는 비손실 LZ4 압축 알고리즘을 제공하는 압축 라이브러리입니다. Zarr 드라이버가 이 라이브러리를 사용합니다.

LZ4_INCLUDE_DIR

lz4.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

LZ4_LIBRARY_RELEASE

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 LZ4_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_LZ4=ON/OFF

LZ4를 사용할지 여부를 제어합니다. LZ4가 검색되는 경우 기본값은 ON입니다.

MONGOCXX

MongoCXX 및 BsonCXX 라이브러리는 MongoDBv3 드라이버를 빌드하기 위해 필요합니다. pkg-config으로 탐지할 수 있습니다.

MONGOCXX_INCLUDE_DIR

mongocxx/client.hpp 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

BSONCXX_INCLUDE_DIR

bsoncxx/config/version.hpp 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

MONGOCXX_LIBRARY

mongocxx 라이브러리 파일을 가리키는 경로

BSONCXX_LIBRARY

bsoncxx 라이브러리 파일을 가리키는 경로

GDAL_USE_MONGOCXX=ON/OFF

MONGOCXX를 사용할지 여부를 제어합니다. MONGOCXX가 검색되는 경우 기본값은 ON입니다.

MRSID

MRSID 래스터 DSDK(사유 소스)는 MrSID – 다중 해상도 심리스 이미지 데이터베이스 드라이버를 사용하기 위해 필수적인 라이브러리입니다.

MRSID_ROOT 또는 CMAKE_PREFIX_PATH 환경 변수는 Raster_DSDK로 끝나는 SDK 디렉터리를 가리켜야 합니다. 리눅스 상에서 응용 프로그램들의 링크 작업이 성공하려면 그리고 libtbb.so를 검색 가능하게 하려면 이 라이브러리의 하위 디렉터리가 LD_LIBRARY_PATH에 정의돼 있어야 한다는 사실을 기억하십시오.

MRSID_INCLUDE_DIR

lt_base.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

MRSID_LIBRARY

libltidsdk 라이브러리 파일을 가리키는 경로

GDAL_ENABLE_DRIVER_JP2MRSID

MrSID SDK를 통해 JPEG2000 지원을 활성화할지 여부를 설정합니다. 이 옵션의 기본값은 OFF입니다.

GDAL_USE_MRSID=ON/OFF

MRSID를 사용할지 여부를 제어합니다. MRSID가 검색되는 경우 기본값은 ON입니다.

MSSQL_NCLI

마이크로소프트 SQL 네이티브 클라이언트 라이브러리(사유 소스)는 MSSQLSpatial - 마이크로소프트 SQL 서버 공간 데이터베이스 드라이버에서 대량(bulk) 복사를 활성화하기 위해 필수적인 라이브러리입니다. MSSQL_NCLI와 MSSQL_ODBC 둘 다 검색되고 활성화된 경우, MSSQL_ODBC를 사용할 것입니다. 표준 위치에 설치되어 있고 11 버전인 경우, 이 라이브러리는 보통 검색됩니다.

MSSQL_NCLI_VERSION

네이티브 클라이언트의 주요 버전, 일반적으로 11

MSSQL_NCLI_INCLUDE_DIR

sqlncli.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

MSSQL_NCLI_LIBRARY

링크될 라이브러리를 가리키는 경로입니다.

GDAL_USE_MSSQL_NCLI=ON/OFF

MSSQL_NCLI를 사용할지 여부를 제어합니다. MSSQL_NCLI가 검색되는 경우 기본값은 ON입니다.

MSSQL_ODBC

마이크로소프트 SQL 네이티브 ODBC 드라이버 라이브러리(사유 소스)는 MSSQLSpatial - 마이크로소프트 SQL 서버 공간 데이터베이스 드라이버에서 대량(bulk) 복사를 활성화하기 위해 필수적인 라이브러리입니다. MSSQL_NCLI와 MSSQL_ODBC 둘 다 검색되고 활성화된 경우, MSSQL_ODBC를 사용할 것입니다. 표준 위치에 설치되어 있고 17 버전인 경우, 이 라이브러리는 보통 검색됩니다.

MSSQL_ODBC_VERSION

네이티브 클라이언트의 주요 버전, 일반적으로 17

MSSQL_ODBC_INCLUDE_DIR

msodbcsql.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

MSSQL_ODBC_LIBRARY

링크될 라이브러리를 가리키는 경로입니다.

GDAL_USE_MSSQL_ODBC=ON/OFF

MSSQL_ODBC를 사용할지 여부를 제어합니다. MSSQL_ODBC가 검색되는 경우 기본값은 ON입니다.

MYSQL

MySQL 또는 MariaDB 클라이언트 라이브러리는 MySQL 드라이버를 활성화시키기 위해 필수적인 라이브러리입니다.

MYSQL_INCLUDE_DIR

mysql.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

MYSQL_LIBRARY

링크될 라이브러리를 가리키는 경로입니다.

GDAL_USE_MYSQL=ON/OFF

MYSQL을 사용할지 여부를 제어합니다. MYSQL이 검색되는 경우 기본값은 ON입니다.

NetCDF

netCDFNetCDF: 네트워크 공통 데이터 형식 드라이버를 활성화시키기 위해 필수적인 라이브러리입니다. nc-config 프로그램으로 탐지할 수 있습니다.

NETCDF_INCLUDE_DIR

netcdf.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

NETCDF_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_NETCDF=ON/OFF

netCDF를 사용할지 여부를 제어합니다. netCDF가 검색되는 경우 기본값은 ON입니다.

ODBC

ODBC는 ODBC RDBMS, ESRI 개인 지리 데이터베이스, Walk - Walk Spatial DataMSSQLSpatial - 마이크로소프트 SQL 서버 공간 데이터베이스 등 다양한 드라이버를 사용하기 위해 필수적인 라이브러리입니다. 유닉스와 윈도우 상에서는 보통 시스템 디렉터리에서 자동적으로 검색됩니다.

ODBC_INCLUDE_DIR

sql.h 헤더 파일을 가진 ODBC include 디렉터리를 가리키는 경로입니다.

ODBC_LIBRARY

링크될 ODBC 라이브러리를 가리키는 경로입니다.

GDAL_USE_ODBC=ON/OFF

ODBC를 사용할지 여부를 제어합니다. ODBC가 검색되는 경우 기본값은 ON입니다.

OGDI

OGDIOGDI 벡터 드라이버를 사용하기 위해 필수적인 라이브러리입니다. pkg-config으로 탐지할 수 있습니다.

OGDI_INCLUDE_DIR

ecs.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

OGDI_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_OGDI=ON/OFF

OGDI를 사용할지 여부를 제어합니다. OGDI가 검색되는 경우 기본값은 ON입니다.

OpenCL

OpenCL 라이브러리는 일반적으로 GPU와 함께 왜곡 작업(warping) 계산의 속도를 올리기 위해 사용될 수 있습니다.

Note

이 라이브러리는 검색된 경우라도 기본적으로 비활성화되어 있습니다. 현재 OpenCL의 왜곡 작업 구현이 일반 구현의 속도보다 뒤쳐지기 때문입니다.

OpenCL_INCLUDE_DIR

CL/cl.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

OpenCL_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_OPENCL=ON/OFF

OPENCL을 사용할지 여부를 제어합니다. OPENCL이 검색되는 경우 기본값은 OFF 입니다.

OpenEXR

OpenEXREXR – 확장된 동적 범위 이미지 파일 포맷 드라이버를 사용하기 위해 필수적인 라이브러리입니다.

OpenEXR_ROOT 변수가 하위 디렉터리 /lib 및 /include의, 예를 들어 /DEV/lib/openexr-3.0 같은 상위 디렉터리를 가리키도록 지정하십시오. OpenEXR 3 이상 버전의 경우 추가로 Imath_ROOT 변수도 지정하십시오. Imath는 이제, 예를 들면 /DEV/lib/imath-3.1.3 같은 별개의 라이브러리이기 때문입니다.

또는

OpenEXR의 pkgconfig를 찾으려면 CMAKE_PREFIX_PATH 변수에 루트 디렉터리를 추가로 지정하십시오. 예를 들면 -DCMAKE_PREFIX_PATH=/DEV/lib/openexr-3.0;/DEV/lib/imath-3.1.3 처럼 말이죠.

또는

정말로 명확하게 하려면 OpenEXR_INCLUDE_DIR, Imath_INCLUDE_DIR, OpenEXR_LIBRARY, OpenEXR_UTIL_LIBRARY, OpenEXR_HALF_LIBRARY, OpenEXR_IEX_LIBRARY 변수들을 분명하게 설정하십시오.

GDAL_USE_OPENEXR=ON/OFF

OpenEXR를 사용할지 여부를 제어합니다. OpenEXR가 검색되는 경우 기본값은 ON입니다.

OpenJPEG

OpenJPEG 라이브러리는 C 언어로 작성된 오픈 소스 JPEG-2000 코덱입니다. OpenJPEG은 JP2OpenJPEG – OpenJPEG 라이브러리 기반 JPEG2000 드라이버 드라이버, 또는 JPEG-2000 기능을 사용하는 다른 드라이버들을 사용하기 위해 필수적인 라이브러리입니다.

OPENJPEG_INCLUDE_DIR

openjpeg.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

OPENJPEG_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_OPENJPEG=ON/OFF

OpenJPEG을 사용할지 여부를 제어합니다. OpenJPEG이 검색되는 경우 기본값은 ON입니다.

OpenSSL

OpenSSL 라이브러리의 Crypto 요소는 구글 클라우드의 인증 메소드 가운데 일부가 사용하는 RSA SHA256 서명 기능에 쓰일 수 있습니다. EEDAI - 구글 어스 엔진 데이터 API 이미지 이미지 또는 /vsigs/ 가상 파일 시스템을 필수적으로 사용해야 할 수도 있습니다.

이 라이브러리를 환경설정하는 방법에 대해 자세히 알고 싶다면 https://cmake.org/cmake/help/latest/module/FindOpenSSL.html 을 읽어보십시오.

GDAL_USE_OPENSSL=ON/OFF

OpenSSL을 사용할지 여부를 제어합니다. OpenSSL이 검색되는 경우 기본값은 ON입니다.

Oracle

오라클(Oracle) 인스턴스 클라이언트 SDK(사유 소스)는 오라클 Spatial오라클 공간 지오래스터 드라이버를 사용하기 위해 필수적인 라이브러리입니다.

Oracle_ROOT

오라클 인스턴스 클라이언트 SDK의 루트 디렉터리를 가리키는 경로입니다.

GDAL_USE_ORACLE=ON/OFF

오라클을 사용할지 여부를 제어합니다. 오라클이 검색되는 경우 기본값은 ON입니다.

Parquet

(지오)파켓 드라이버는 아파치 애로우 C++ <https://github.com/apache/arrow/tree/master/cpp> 라이브러리의 Parquet 구성 요소를 요구합니다. CMAKE_PREFIX_PATH 변수에 설치 접두어를 지정하십시오.

GDAL_USE_PARQUET=ON/OFF

Parquet을 사용할지 여부를 제어합니다. Parquet이 존재하는 경우 기본값은 ON입니다.

PCRE2

PCRE2 는 펄(Perl) 호환 정규 표현식 지원을 구현합니다. SQLite3을 사용하는 드라이버에서 REGEXP 연산자 용으로 이 라이브러리를 사용합니다.

PCRE2_INCLUDE_DIR

pcre2.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

PCRE2_LIBRARY

이름에 “pcre2-8” 이 포함된 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_PCRE2=ON/OFF

PCRE2를 사용할지 여부를 제어합니다. PCRE2가 검색되는 경우 기본값은 ON입니다.

PDFium

PDFium 라이브러리는 PDF – 지리공간 PDF 드라이버 용 백엔드 후보 가운데 하나입니다.

PDFium_INCLUDE_DIR

public/fpdfview.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

PDFium_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_PDFIUM=ON/OFF

PDFium을 사용할지 여부를 제어합니다. PDFium이 검색되는 경우 기본값은 ON입니다.

PNG

libpngPNG – 포터블 네트워크 그래픽스(Portable Network Graphics) 드라이버를 사용하기 위해 필수적인 라이브러리로, 몇몇 다른 (GRIB – 바이너리 형식의 WMO 일반 정규 배포 정보 (WMO General Regularly-distributed Information in Binary form), GPKG – 지오패키지 래스터 등등) 드라이버가 사용할 수도 있습니다. 검색되지 않는 경우, libpng의 내부 복사본을 사용할 것입니다. 이 라이브러리를 탐지하는 방법에 대해 더 자세히 알고 싶다면 See https://cmake.org/cmake/help/latest/module/FindPNG.html 을 읽어보십시오.

PNG_PNG_INCLUDE_DIR

png.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

PNG_LIBRARY_RELEASE

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 PNG_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_PNG=ON/OFF

외부 libpng를 사용할지 여부를 제어합니다. 외부 libpng가 검색되는 경우 기본값은 ON입니다.

GDAL_USE_PNG_INTERNAL=ON/OFF

내부 libpng를 사용할지 여부를 제어합니다. 외부 libpng가 검색되지 않는 경우 기본값은 ON입니다.

Poppler

Poppler 라이브러리는 PDF – 지리공간 PDF 드라이버 용 백엔드 후보 가운데 하나입니다.

Poppler_INCLUDE_DIR

poppler-config.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

Poppler_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_POPPLER=ON/OFF

Poppler를 사용할지 여부를 제어합니다. Poppler가 검색되는 경우 기본값은 ON입니다.

PostgreSQL

PostgreSQL 클라이언트 라이브러리PostgreSQL / PostGISPostGISRaster – PostGIS 래스터 드라이버 드라이버를 사용하기 위해 필수적입니다.

PostgreSQL_INCLUDE_DIR

libpq-fe.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

PostgreSQL_LIBRARY_RELEASE

공유 또는 정적 라이브러리 파일 pq / libpq 를 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 PostgreSQL_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_POSTGRESQL=ON/OFF

PostgreSQL을 사용할지 여부를 제어합니다. PostgreSQL이 검색되는 경우 기본값은 ON입니다.

PROJ

PROJ 6 이상 버전은 GDAL에 필수적인 의존성입니다.

PROJ_INCLUDE_DIR

proj.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

PROJ_LIBRARY_RELEASE

proj.dll, libproj.so, proj.lib 또는 다른 이름 같은 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 PROJ_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

QB3

MRF – 메타 래스터 포맷 드라이버가 사용하는 QB3 압축 라이브러리입니다.

GDAL_USE_QB3=ON/OFF

QB3 압축을 사용할지 여부를 제어합니다. QB3이 존재하는 경우 기본값은 ON입니다.

QHULL

QHULL 라이브러리는 gdal_grid의 선형 보간(linear interpolation)에 사용됩니다. 검색되지 않을 경우, 내부 복사본을 사용합니다.

QHULL_PACKAGE_NAME

pkg-config 패키지의 이름으로, 일반적으로 qhull_r 또는 qhullstatic_r 입니다. 기본값은 qhull_r 입니다.

QHULL_INCLUDE_DIR

libqhull_r/libqhull_r.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

QHULL_LIBRARY

오목(reentrant) 라이브러리의 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_QHULL=ON/OFF

QHULL을 사용할지 여부를 제어합니다. QHULL이 검색되는 경우 기본값은 ON입니다.

GDAL_USE_QHULL_INTERNAL=ON/OFF

내부 QHULL 복사본을 사용할지 여부를 제어합니다. 외부 QHULL이 검색되지 않는 경우 기본값은 ON입니다.

RASTERLITE2

RasterLite2 (1.1.0버전 이상)는 RasterLite2 - SQLite 데이터베이스 래스터 드라이버가 이용하는 라이브러리입니다. pkg-config으로 탐지할 수 있습니다.

RASTERLITE2_INCLUDE_DIR

rasterlite2/rasterlite2.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

RASTERLITE2_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_RASTERLITE2=ON/OFF

RasterLite2를 사용할지 여부를 제어합니다. RasterLite2가 검색되는 경우 기본값은 ON입니다.

rdb

RDB <https://repository.riegl.com/software/libraries/rdblib> (사유 소스)는 RDB - RIEGL 데이터베이스 드라이버를 사용하기 위해 필수적인 라이브러리입니다. CMAKE_PREFIX_PATH 변수에 설치 접두어를 지정하십시오.

GDAL_USE_RDB=ON/OFF

rdb를 사용할지 여부를 제어합니다. rdb가 검색되는 경우 기본값은 ON입니다.

SPATIALITE

SpatialiteSQLite / SpatiaLite RDBMSGPKG – 지오패키지 벡터 드라이버, 그리고 SQL SQLite 방언 가 이용하는 라이브러리입니다. pkg-config으로 탐지할 수 있습니다.

SPATIALITE_INCLUDE_DIR

spatialite.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

SPATIALITE_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_SPATIALITE=ON/OFF

Spatialite를 사용할지 여부를 제어합니다. Spatialite가 검색되는 경우 기본값은 ON입니다.

SQLite3

SQLite3SQLite / SpatiaLite RDBMSGPKG – 지오패키지 벡터 드라이버(그리고 다른 드라이버들도), 그리고 SQL SQLite 방언 를 사용하기 위해 필수적인 라이브러리입니다.

SQLite3_INCLUDE_DIR

sqlite3.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

SQLite3_LIBRARY

sqlite3.dll, libsqlite3.so, sqlite3.lib 또는 다른 이름 같은 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_SQLITE3=ON/OFF

SQLite3를 사용할지 여부를 제어합니다. SQLite3가 검색되는 경우 기본값은 ON입니다.

SFCGAL

SFCGAL 은 3D 작업(PolyhedralSurface, TINs 등등)을 위한 ISO 19107:2013과 OGC 단순 피처 접근(OGC Simple Features Access) 1.2를 지원하는 도형 라이브러리입니다.

SFCGAL_INCLUDE_DIR

기반 include 디렉터리를 가리키는 경로입니다.

SFCGAL_LIBRARY_RELEASE

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 SFCGAL_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_SFCGAL=ON/OFF

SFCGAL을 사용할지 여부를 제어합니다. SFCGAL이 검색되는 경우 기본값은 ON입니다.

SWIG

SWIG 은 C와 C++로 작성된 프로그램을 다양한 고급 프로그래밍 언어들과 연결시켜주는 소프트웨어 개발 도구입니다. 파이썬, 자바 및 C# 바인딩을 위해 쓰입니다.

SWIG_EXECUTABLE

SWIG 실행 파일을 가리키는 경로입니다.

TEIGHA

TEIGHA / 오픈 디자인 동맹(Open Design Alliance) 라이브러리(사유 소스)는 오토캐드 DWG마이크로스테이션 DGN v8 드라이버를 사용하기 위해 필수적인 라이브러리입니다. 공유 라이브러리로 이루어진 SDK를 가진 리눅스 상에서 응용 프로그램들의 링크 작업이 성공하기 위해서는 SDK의 bin/{platform_name} 하위 디렉터리가 LD_LIBRARY_PATH에 지정돼 있어야 한다는 점을 기억하십시오. TEIGHA_ROOT 변수는 설정돼 있어야만 합니다.

TEIGHA_ROOT

커널 및 드로잉(drawings) 패키지가 추출되어야만 하는 기반 디렉터리를 가리키는 경로입니다.

TEIGHA_ACTIVATION_FILE_DIRECTORY

OdActivationInfo 파일이 있는 디렉터리를 가리키는 경로입니다. 이 파일이 TEIGHA_ROOT 경로 아래 있는 경우, 자동적으로 검색될 것입니다. 그렇지 않다면 최근 SDK 버전(최소 2021 이상)에 대해 이 변수를 설정해야만 합니다.

GDAL_USE_TEIGHA=ON/OFF

TEIGHA를 사용할지 여부를 제어합니다. TEIGHA가 검색되는 경우 기본값은 ON입니다.

TIFF

libtiffGTiff – GeoTIFF 파일 포맷 드라이버와 몇몇 다른 드라이버들을 사용하기 위해 필수적인 라이브러리입니다. 이 라이브러리가 검색되지 않는 경우, 내부 libtiff 복사본을 사용할 것입니다.

TIFF_INCLUDE_DIR

tiff.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

TIFF_LIBRARY_RELEASE

tiff.dll, libtiff.so, tiff.lib 또는 다른 이름 같은 공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 TIFF_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_TIFF=ON/OFF

외부 libtiff를 사용할지 여부를 제어합니다. 외부 libtiff가 검색되는 경우 기본값은 ON입니다.

GDAL_USE_TIFF_INTERNAL=ON/OFF

내부 libtiff 복사본을 사용할지 여부를 제어합니다. 외부 libtiff가 검색되지 않는 경우 기본값은 ON입니다.

TileDB

TileDB <https://github.com/TileDB-Inc/TileDB>TileDB - TileDB 드라이버를 사용하기 위해 필수적인 라이브러리입니다. CMAKE_PREFIX_PATH 변수에 설치 접두어를 지정하십시오.

GDAL_USE_TILEDB=ON/OFF

TileDB를 사용할지 여부를 제어합니다. TileDB가 검색되는 경우 기본값은 ON입니다.

WebP

WebP 는 이미지 압축 라이브러리입니다. WEBP - WEBP 드라이버를 사용하기 위해 필수적이며, GPKG – 지오패키지 래스터 및 내부 libtiff 라이브러리가 이용할 수도 있습니다.

WEBP_INCLUDE_DIR

webp/encode.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

WEBP_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_WEBP=ON/OFF

WebP를 사용할지 여부를 제어합니다. WebP가 검색되는 경우 기본값은 ON입니다.

XercesC

Xerces-C 는 스트림 향(stream-oriented) XML 파서(parser; 구문 분석기)로, NAS - ALKIS, “INTERLIS 1” 및 “INTERLIS 2” 드라이버GMLAS - 응용 프로그램 스키마 주도 GML 드라이버의 XML 파싱 기능을 활성화하기 위해 필수적인 라이브러리입니다. GML 드라이버의 경우 Expat 대신 이 라이브러리를 이용할 수도 있습니다.

XercesC_INCLUDE_DIR

기반 include 디렉터리를 가리키는 경로입니다.

XercesC_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_XERCESC=ON/OFF

XercesC를 사용할지 여부를 제어합니다. XercesC가 검색되는 경우 기본값은 ON입니다.

ZLIB

ZLib 은 비손실 Deflate/Zip 압축 알고리즘을 제공하는 압축 라이브러리입니다.

ZLIB_INCLUDE_DIR

zlib.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

ZLIB_LIBRARY_RELEASE

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다. 디버그 배포판을 빌드하기 위해 비슷한 라이브러리에 비슷한 ZLIP_LIBRARY_DEBUG 변수를 지정할 수도 있습니다.

GDAL_USE_ZLIB=ON/OFF

ZLIB을 사용할지 여부를 제어합니다. ZLIB이 검색되는 경우 기본값은 ON입니다.

GDAL_USE_ZLIB_INTERNAL=ON/OFF

내부 zlib 복사본을 사용할지 여부를 제어합니다. 외부 zlib이 검색되지 않는 경우 기본값은 ON입니다.

ZSTD

ZSTD 는 비손실 ZStd 압축 알고리즘을 제공하는 압축 라이브러리입니다. (Deflate/ZIP보다 빠르지만, 호환되지는 않습니다.) 내부 libtiff 라이브러리 또는 Zarr 드라이버가 사용합니다.

ZSTD_INCLUDE_DIR

zstd.h 헤더 파일을 가진 include 디렉터리를 가리키는 경로입니다.

ZSTD_LIBRARY

공유 또는 정적 라이브러리 파일을 가리키는 경로입니다.

GDAL_USE_ZSTD=ON/OFF

ZSTD를 사용할지 여부를 제어합니다. ZSTD가 검색되는 경우 기본값은 ON입니다.

드라이버 선택

기본적으로 빌드 필요조건을 만족하는 모든 드라이버는 GDAL 핵심 라이브러리에 내장될 것입니다.

드라이버 하위 집합(subset)을 선택하기 위해 다음 옵션들을 사용할 수 있습니다:

GDAL_ENABLE_DRIVER_<driver_name>:BOOL=ON/OFF
OGR_ENABLE_DRIVER_<driver_name>:BOOL=ON/OFF

전체 수준 습성(global behavior)을 제어하는 옵션과는 별개로, 이 옵션들로 드라이버를 독립적으로 활성화 또는 비활성화할 수 있습니다.

GDAL_BUILD_OPTIONAL_DRIVERS:BOOL=ON/OFF
OGR_BUILD_OPTIONAL_DRIVERS:BOOL=ON/OFF

전체 수준에서 모든 GDAL/래스터 또는 OGR/벡터 드라이버를 활성화/비활성시킵니다. 정확히 말하자면, 이 변수들을 ON으로 설정하면 (다음 변수들이 아직 설정되지 않은 경우) GDAL_ENABLE_DRIVER_<driver_name> 또는 OGR_ENABLE_DRIVER_<driver_name> 변수의 기본값에 영향을 끼칩니다.

GDAL_ENABLE_DRIVER_<driver_name>:BOOL=ON 또는 OGR_ENABLE_DRIVER_<driver_name>:BOOL=ON 변수를 이용해서 이 습성을 드라이버 하위 집합의 개별 활성화와 결합할 수 있습니다. CMake를 처음 실행한 후 GDAL_BUILD_OPTIONAL_DRIVERS / OGR_BUILD_OPTIONAL_DRIVERS의 값을 변경하더라도 개별 드라이버의 활성화는 변경되지 않는다는 사실을 기억하십시오. 개별 드라이버의 상태를 리셋하려면 -UGDAL_ENABLE_DRIVER_* -UOGR_ENABLE_DRIVER_* 를 전달(pass)해줘야 할 수도 있습니다.

JP2OpenJPEG 및 SVG 드라이버의 최소 빌드를 활성화하는 예시:

cmake .. -UGDAL_ENABLE_DRIVER_* -UOGR_ENABLE_DRIVER_* \
         -DGDAL_BUILD_OPTIONAL_DRIVERS:BOOL=OFF -DOGR_BUILD_OPTIONAL_DRIVERS:BOOL=OFF \
         -DGDAL_ENABLE_DRIVER_JP2OPENPEG:BOOL=ON \
         -DOGR_ENABLE_DRIVER_SVG:BOOL=ON

드라이버를 플러그인으로 빌드

모든 드라이버는 아니지만, 중요한 드라이버 하위 집합을 플러그인으로 빌드할 수도 있습니다. 즉 GDAL 설치본의 gdalplugins 하위 디렉터리에 독립적인(standalone) .dll/.so 공유 라이브러리로써 설치되도록 말입니다. 이는 GDAL 핵심 라이브러리와는 다른 (상용, 카피레프트 등등) 사용허가를 가진 라이브러리를 의존하고 있는 드라이버의 경우 특히 유용할 수 있습니다.

플러그인으로 빌드할 수 있는 드라이버 목록은 다음과 같이 얻을 수 있습니다:

cmake .. -L | grep -e "_ENABLE.*PLUGIN"

드라이버의 플러그인/내장(builtin) 상태를 선택하려면 다음 옵션들을 사용할 수 있습니다:

GDAL_ENABLE_DRIVER_<driver_name>_PLUGIN:BOOL=ON/OFF
OGR_ENABLE_DRIVER_<driver_name>_PLUGIN:BOOL=ON/OFF

전체 수준 습성(global behavior)을 제어하는 옵션과는 별개로, 이 옵션들로 드라이버를 독립적으로 활성화 또는 비활성화할 수 있습니다.

빌드될 드라이버의 경우 해당하는 기반 GDAL_ENABLE_DRIVER_{driver_name}:BOOL=ON 또는 OGR_ENABLE_DRIVER_{driver_name}:BOOL=ON 옵션을 설정해야만 한다는 사실을 기억하십시오.

GDAL_ENABLE_PLUGINS:BOOL=ON/OFF

전체 수준에서 (플러그인으로 빌드할 수 있는) 모든 GDAL 및 OGR의 드라이버들을 플러그인으로 빌드하는 작업을 활성화/비활성화시킵니다. 정확히 말하자면, 이 변수를 ON으로 설정하면 (다음 변수들이 아직 설정되지 않은 경우) GDAL_ENABLE_DRIVER_<driver_name>_PLUGIN 또는 OGR_ENABLE_DRIVER_<driver_name>_PLUGIN 변수의 기본값에 영향을 끼칩니다.

GDAL_ENABLE_DRIVER_{driver_name}_PLUGIN:BOOL 또는 OGR_ENABLE_DRIVER_{driver_name}_PLUGIN:BOOL 변수를 이용해서 이 습성을 플러그인 상태의 개별 활성화/비활성화와 결합할 수 있습니다. CMake를 처음 실행한 후 GDAL_ENABLE_PLUGINS의 값을 변경하더라도 개별 드라이버의 플러그인 상태의 활성화는 변경되지 않는다는 사실을 기억하십시오. 개별 드라이버의 플러그인 상태를 리셋하려면 -UGDAL_ENABLE_DRIVER_* -UOGR_ENABLE_DRIVER_* 를 전달(pass)해줘야 할 수도 있습니다.

JP2OpenJPEG을 제외하고, 플러그인으로 빌드할 수 있는 모든 드라이버를 플러그인으로 빌드하는 예시:

cmake .. -UGDAL_ENABLE_DRIVER_* -UOGR_ENABLE_DRIVER_* \
         -DGDAL_ENABLE_PLUGINS:BOOL=ON \
         -DGDAL_ENABLE_DRIVER_JP2OPENPEG_PLUGIN:BOOL=OFF

GDAL_ENABLE_PLUGINS:BOOL=ON 변수의 경우 미묘한 점이 존재합니다. 이 변수는 플러그인으로 빌드할 수 있는 드라이버 가운데 GDAL 핵심 의존성의 한 부분이 아니라 외부 의존성을 가지고 있는 (예: netCDF, HDF4, Oracle, PDF 등등) 드라이버의 플러그인 상태만 제어합니다.

GDAL_ENABLE_PLUGINS_NO_DEPS:BOOL=ON/OFF

전체 수준에서 (플러그인으로 빌드할 수 있는) 모든 GDAL 및 OGR의 드라이버들 가운데 외부 의존성을 가지고 있지 않은 (예: BMP, FlatGeobuf) 드라이버를, 또는 GDAL 핵심 의존성의 한 부분인 의존성을 가지고 있는 (예: GPX) 드라이버를 플러그인으로 빌드하는 작업을 활성화/비활성화시킵니다. 일반적으로 이런 드라이버들을 빌드하는 작업은 필요하지 않기 때문에, GDAL_ENABLE_PLUGINS와는 다른 옵션을 사용하는 것입니다.

어떤 상황에서는, GDAL 플러그인을 불러오지 않는 것이 적절할 수도 있습니다. 다음과 같이 설정하면 됩니다:

GDAL_AUTOLOAD_PLUGINS:BOOL=ON/OFF

OFF로 설정하면 GDAL 플러그인을 불러오는 것을 막습니다. 기본값은 ON입니다.

파이썬 바인딩 옵션

BUILD_PYTHON_BINDINGS:BOOL=ON/OFF

파이썬 바인딩을 빌드해야 하는지 여부를 설정합니다. 기본값은 ON이지만, 파이썬 설치본이 검색된 경우에만 유효합니다.

명목상의 파이썬 설치본은 (3.6버전 이상의) 파이썬 런타임과 셋업 도구 모듈로 이루어져 있어야 합니다. 넘파이(NumPy)와 넘파이 헤더 및 개발 라이브러리도 강력히 권장합니다.

파이썬 설치본은 경로에 설정되었거나 또는 파이썬 설치 관리자의 기타 표준 설치 메커니즘을 통해 등록된 경우 보통 검색됩니다. https://cmake.org/cmake/help/git-stage/module/FindPython.html 에서 자세히 설명하고 있는 대로, 변수 몇 개를 사용해서 지정할 수도 있습니다.

GDAL도 다음 옵션을 제공하고 있습니다:

Python_LOOKUP_VERSION:STRING=major.minor.patch

이 옵션을 지정하면, Python_FIND_STRATEGY=VERSION 옵션도 지정되어 있을 것이라고 상정합니다. EXACT 전략을 취하기 때문에 패치 숫자를 지정해야만 한다는 사실을 기억하세요.

기타 유용한 옵션들:

Python_FIND_VIRTUALENV

virtualenv를 활성화해서 사용하려면 ‘ONLY’라고 지정하십시오.

Python_ROOT

파이썬 설치 접두어를 지정하십시오.

예시:

cmake -DPython_LOOKUP_VERSION=3.6.0 ..
cmake -DPython_FIND_VIRTUALENV=ONLY ..
cmake -DPython_ROOT=C:\Python36 ..

다음은 고급 옵션들로 install CMake 대상(target)인 도중에만 적용됩니다.

GDAL_PYTHON_INSTALL_PREFIX

CMAKE_INSTALL_PREFIX 옵션을 무시(override)하기 위해 이 옵션을 디렉터리 이름으로 지정할 수 있습니다. 이 옵션은 python setup.py install--prefix 옵션의 값을 설정하기 위해 쓰입니다.

GDAL_PYTHON_INSTALL_LAYOUT

python setup.py install--install-layout 옵션의 값을 설정하기 위해 이 옵션을 지정할 수 있습니다. 파이썬 설치 과정에서 site-packages 하위 디렉터리를 찾고 있다는 사실이 탐지되는 경우 기본적으로 설치 지침(install layout)을 deb 으로 설정합니다. 그렇지 않으면 지정하지 않습니다.

GDAL_PYTHON_INSTALL_LIB

python setup.py install--install-lib 옵션의 값을 설정하기 위해 이 옵션을 지정할 수 있습니다. 이 옵션은 맥OS 상에서 파이썬이 프레임워크로 설치되는 경우에만 적용됩니다.

자바 바인딩 옵션

BUILD_JAVA_BINDINGS:BOOL=ON/OFF

자바 바인딩을 빌드해야 하는지 여부를 설정합니다. 기본값은 ON이지만, 자바 런타임과 개발 패키지가 검색된 경우에만 유효합니다. https://cmake.org/cmake/help/latest/module/FindJava.htmlhttps://cmake.org/cmake/help/latest/module/FindJNI.html 에서 설정할 수 있는 관련 옵션들을 설명하고 있습니다. ant 바이너리 또한 PATH에서 사용할 수 있어야만 합니다.

GDAL_JAVA_INSTALL_DIR

gdalalljni 라이브러리와 .jar 파일들을 설치할 하위 디렉터리입니다. 기본값은 “${CMAKE_INSTALL_DATADIR}/java”입니다.

유지관리자만 사용할 옵션:

GPG_KEY

빌드 요소들을 서명하기 위한 GPG 키입니다. bundle.jar를 생성해야 합니다.

GPG_PASS

빌드 요소들을 서명하기 위한 GPG 비밀구절(pass phrase)입니다.

C# 바인딩 옵션

C# 바인딩을 빌드하고 사용하는 방법에 대해 더 자세히 알고 싶다면 C# 바인딩 컴파일 작업 - CMake 스크립트 를 읽어보십시오.

BUILD_CSHARP_BINDINGS:BOOL=ON/OFF

C# 바인딩을 빌드해야 할지 여부를 지정합니다. 기본값은 ON이지만 C# 런타임 및 개발 패키지를 찾은 경우에만 빌드합니다. .NET SDK 또는 Mono 가운데 하나를 사용할 수 있습니다. 설정할 수 있는 관련 옵션은 cmake/modules/thirdparty/FindDotNetFrameworkSdk.cmakecmake/modules/thirdparty/FindMono.cmake 에서 설명하고 있습니다.

CSHARP_MONO=ON/OFF

.NET 대신 Mono를 사용하도록 강제해서 C# 바인딩을 컴파일합니다.

CSHARP_LIBRARY_VERSION

C# 바인딩 라이브러리 컴파일 시 .NET (또는 Mono) 대상 SDK를 사용하도록 설정합니다. .NET이 허용하는 콘텐츠 목록

CSHARP_APPLICATION_VERSION

C# 샘플 프로그램 컴파일 시 .NET (또는 Mono) 대상 SDK를 사용하도록 설정합니다. .NET이 허용하는 콘텐츠 목록

GDAL_CSHARP_ONLY=OFF/ON

GDAL을 빌드하지 않은 채 C# 바인딩을 빌드합니다. 기조 GDAL 설치본을 기반으로, 예를 들어 콘다 패키지를 기반으로 바인딩을 빌드하는 경우 이 옵션을 사용해야 합니다.

드라이버 특정 옵션

GDAL_USE_PUBLICDECOMPWT

MSG – 2세대 Meteosat 드라이버는 이 옵션이 ON으로 설정된 경우에만 (기본값은 OFF) 빌드됩니다. 이 옵션이 ON인 경우 https://gitlab.eumetsat.int/open-source/PublicDecompWT.git 저장소를 빌드 트리로 다운로드해서 (환경설정 시 git 바이너리를 사용할 수 있어야 합니다) 필요한 파일들을 드라이버로 빌드합니다.

윈도우에서 콘다 의존성과 비주얼 스튜디오로 빌드하기

이 방법은 GDAL의 디버그 빌드 용으로는 vcpkg 같은 다른 방법들보다 조금 부적합합니다.

git 설치

git 을 설치하십시오.

miniconda 설치

miniconda 를 설치하십시오.

GDAL 의존성 설치

콘다(Conda) 활성 콘솔을 시작한 다음 c:\dev 디렉터리가 존재한다고 가정합니다.

cd c:\dev
conda create --name gdal
conda activate gdal
conda install --yes --quiet curl libiconv icu git python=3.7 swig numpy pytest zlib clcache
conda install --yes --quiet -c conda-forge compilers
conda install --yes --quiet -c conda-forge \
    cmake proj geos hdf4 hdf5 \
    libnetcdf openjpeg poppler libtiff libpng xerces-c expat libxml2 kealib json-c \
    cfitsio freexl geotiff jpeg libpq libspatialite libwebp-base pcre postgresql \
    sqlite tiledb zstd charls cryptopp cgal jasper librttopo libkml openssl xz

Note

compilers 패키지가 CMake가 선택할 수 있는 적절한 환경을 설정하기 위해 (문서 작성 당시) vs2017_win-64 를 설치할 것입니다. 비주얼 스튜디오 2019를 사용할 예정이라면 vs2019_win-64 패키지를 사용해도 됩니다.

GDAL 소스 체크아웃

cd c:\dev
git clone https://github.com/OSGeo/gdal.git

GDAL 빌드

콘다(Conda) 활성 콘솔에서

conda activate gdal
cd c:\dev\gdal
cmake -S . -B build -DCMAKE_PREFIX_PATH:FILEPATH="%CONDA_PREFIX%" \
                    -DCMAKE_C_COMPILER_LAUNCHER=clcache
                    -DCMAKE_CXX_COMPILER_LAUNCHER=clcache
cmake --build build --config Release -j 8