File: iOS.bundles.cmake.in

package info (click to toggle)
ausweisapp2 2.4.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 22,060 kB
  • sloc: cpp: 114,067; python: 2,805; xml: 1,426; java: 885; sh: 186; makefile: 7
file content (85 lines) | stat: -rw-r--r-- 3,083 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
set(TARGET_FILE @CMAKE_BINARY_DIR@/@CPACK_PACKAGE_FILE_NAME@)
if(SUFFIX)
	set(TARGET_FILE ${TARGET_FILE}.${SUFFIX})
endif()

function(SELF_GENERATED)
	function(FIND_BUNDLE _name _out_bundle _out_parent_dir)
		set(BUNDLE_DIRS "${CONFIG}-iphoneos;${CONFIG}-iphonesimulator;${CONFIG};UninstalledProducts;UninstalledProducts/iphoneos;UninstalledProducts/iphonesimulator")

		foreach(dir ${BUNDLE_DIRS})
			set(tmpDir @CMAKE_BINARY_DIR@/src/${dir})
			set(tmpBundleDir ${tmpDir}/${_name})
			if(EXISTS "${tmpBundleDir}")
				set(${_out_bundle} "${tmpBundleDir}" PARENT_SCOPE)
				set(${_out_parent_dir} "${tmpDir}" PARENT_SCOPE)
				break()
			endif()
		endforeach()
	endfunction()

	if(INTEGRATED_SDK)
		set(Bundle @PROJECT_NAME@2.framework)
	else()
		set(Bundle @PROJECT_NAME@.app)
	endif()

	FIND_BUNDLE(${Bundle} BundleDir ParentDir)

	if(BundleDir)
		message(STATUS "Use bundle: ${BundleDir}")
	else()
		message(FATAL_ERROR "Bundle directory does not exist")
	endif()

	if(INTEGRATED_SDK)
		configure_file("@CMAKE_SOURCE_DIR@/resources/packaging/ios/module.modulemap" "${BundleDir}/Modules/module.modulemap" COPYONLY)
		execute_process(COMMAND ${CMAKE_COMMAND} -E tar cf "${TARGET_FILE}.framework.zip" --format=zip ${Bundle} WORKING_DIRECTORY ${ParentDir})
	else()
		file(GLOB_RECURSE FILES RELATIVE "${CMAKE_BINARY_DIR}" *.dylib)
		foreach(f ${FILES})
			get_filename_component(filename_without_dir ${f} NAME)
			get_filename_component(filename_stripped ${filename_without_dir} NAME_WE)
			message(STATUS "Change @rpath of ${filename_without_dir}")
			execute_process(COMMAND install_name_tool -id @rpath/${filename_stripped} ${f})
		endforeach()

		execute_process(COMMAND ${CMAKE_COMMAND} -DIOS=${IOS} -P ${CMAKE_BINARY_DIR}/SignFiles.cmake WORKING_DIRECTORY ${BundleDir} RESULT_VARIABLE _result)
		if(NOT ${_result} EQUAL 0)
			message(FATAL_ERROR "Signing failed")
		endif()

		execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${BundleDir} Payload/${Bundle})
		execute_process(COMMAND ${CMAKE_COMMAND} -E tar cf "${TARGET_FILE}.ipa" --format=zip Payload)
		execute_process(COMMAND ${CMAKE_COMMAND} -E rm -r Payload)
	endif()

	FIND_BUNDLE(${Bundle}.dSYM dSYM ParentDir)
	if(dSYM)
		message(STATUS "Use dSYM: ${dSYM}")
		execute_process(COMMAND ${CMAKE_COMMAND} -E tar cf "${TARGET_FILE}.dSYM.zip" --format=zip ${Bundle}.dSYM WORKING_DIRECTORY ${ParentDir})
	endif()

	if(ParentDir)
		file(GLOB SymbolMap "${ParentDir}/*.bcsymbolmap")
		if(SymbolMap)
			message(STATUS "Use bcsymbolmap: ${SymbolMap}")
			execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${SymbolMap} ${TARGET_FILE}.bcsymbolmap)
		endif()
	endif()
endfunction()

function(XCODE_GENERATED)
	execute_process(COMMAND ${CMAKE_COMMAND} -E tar cf "${TARGET_FILE}.xcarchive.zip" --format=zip @PROJECT_NAME@.xcarchive)
	if(INTEGRATED_SDK)
		message(FATAL_ERROR "Not supported")
	else()
		execute_process(COMMAND ${CMAKE_COMMAND} -E rename @PROJECT_NAME@.ipa ${TARGET_FILE}.ipa)
	endif()
endfunction()

if(EXISTS "@CMAKE_BINARY_DIR@/@PROJECT_NAME@.xcarchive")
	XCODE_GENERATED()
else()
	SELF_GENERATED()
endif()