File: Provider.cmake

package info (click to toggle)
ausweisapp2 2.4.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,632 kB
  • sloc: cpp: 114,622; python: 2,833; xml: 1,426; java: 923; sh: 186; makefile: 7
file content (24 lines) | stat: -rw-r--r-- 804 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
cmake_minimum_required(VERSION 3.25)

macro(provide_dependency method name)
	set(ARGS ${ARGN})

	if("${name}" MATCHES "Qt" OR "${name}" MATCHES "OpenSSL" OR "${name}" MATCHES "Governikus")
		set(PREFIX_PATH "${CMAKE_BINARY_DIR}/provider")
		if(NOT EXISTS "${PREFIX_PATH}")
			execute_process(COMMAND ${CMAKE_COMMAND} -DNAME=Provider -DPROVIDER=${PROVIDER} -P ${CMAKE_SOURCE_DIR}/ci.cmake
							WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
		endif()
		list(APPEND ARGS NO_DEFAULT_PATH PATHS ${PREFIX_PATH})
		set_directory_properties(PROPERTIES ADDITIONAL_CLEAN_FILES "${PREFIX_PATH}")
	endif()

	find_package(${name} ${ARGS} BYPASS_PROVIDER)
endmacro()

cmake_language(
	SET_DEPENDENCY_PROVIDER provide_dependency
	SUPPORTED_METHODS FIND_PACKAGE
)

message(STATUS "Governikus dependency provider enabled!")