File: GDALSupport.cmake

package info (click to toggle)
cloudcompare 2.10.1-2
  • links: PTS
  • area: main
  • in suites: buster
  • size: 55,916 kB
  • sloc: cpp: 219,837; ansic: 29,944; makefile: 67; sh: 45
file content (43 lines) | stat: -rw-r--r-- 1,459 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
# ------------------------------------------------------------------------------
# GDAL support for CloudCompare
# ------------------------------------------------------------------------------

OPTION( OPTION_USE_GDAL "Build with GDAL support" OFF )
if( ${OPTION_USE_GDAL} )
	find_package(GDAL REQUIRED)
	
	if ( NOT GDAL_FOUND )
		message( SEND_ERROR "GDAL package not found!" )
	else()
		include_directories( ${GDAL_INCLUDE_DIR} )
		if( WIN32 )
			set( GDAL_BIN_DIR ${GDAL_INCLUDE_DIR}/../bin CACHE PATH "GDAL DLLs folder" )
		endif()
	endif()
endif()

# Link project with GDAL library
function( target_link_GDAL ) # 2 arguments: ARGV0 = project name / ARGV1 = base lib export folder (optional)
	if( ${OPTION_USE_GDAL} )
		if( GDAL_FOUND )
			target_link_libraries( ${ARGV0} ${GDAL_LIBRARY} )
			set_property( TARGET ${ARGV0} APPEND PROPERTY COMPILE_DEFINITIONS CC_GDAL_SUPPORT )
			
			if( WIN32 )
				#install DLLs
				if ( ARGV1 )
					file( GLOB GDAL_DLL_FILES ${GDAL_BIN_DIR}/*.dll )
					file( GLOB GDAL_DLL_FILES2 ${GDAL_INCLUDE_DIR}/../bin/*.dll )
					message( "GDAL DLLs" )
					message( "Looked in: " ${GDAL_BIN_DIR} )
					message( ${GDAL_DLL_FILES} )
					message( ${GDAL_DLL_FILES2} )
					copy_files("${GDAL_DLL_FILES}" ${ARGV1} ) #mind the quotes!
					copy_files("${GDAL_DLL_FILES2}" ${ARGV1} ) #mind the quotes!
				endif()
			endif()
		else()
			message( SEND_ERROR "GDAL package not found: can't link" )
		endif()
	endif()
endfunction()