aboutsummaryrefslogtreecommitdiff
path: root/xM/CMakeLists.txt
blob: 338692649c790a74f9af391a0e721addf9bf4018 (plain)
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
# Swift language support
cmake_minimum_required (VERSION 3.15)

file (READ ../xK-version project_version)
configure_file (../xK-version xK-version.tag COPYONLY)
string (STRIP "${project_version}" project_version)

# There were two issues when building this from the main CMakeLists.txt:
# a) renaming main.swift to xM.swift requires removing top-level statements,
# b) there is a "redefinition of module 'FFI'" error.
project (xM VERSION "${project_version}"
	DESCRIPTION "Cocoa frontend for xC" LANGUAGES Swift)

set (root "${PROJECT_SOURCE_DIR}/..")
add_custom_command (OUTPUT xC-proto.swift
	COMMAND env LC_ALL=C awk
		-f ${root}/liberty/tools/lxdrgen.awk
		-f ${root}/liberty/tools/lxdrgen-swift.awk
		-v PrefixCamel=Relay
		${root}/xC.lxdr > xC-proto.swift
	DEPENDS
		${root}/liberty/tools/lxdrgen.awk
		${root}/liberty/tools/lxdrgen-swift.awk
		${root}/xC.lxdr
	COMMENT "Generating xC relay protocol code" VERBATIM)

set (MACOSX_BUNDLE_GUI_IDENTIFIER name.janouch.${PROJECT_NAME})

# Other requirements: macOS 10.14 for Network, and macOS 11 for Logger.
set (CMAKE_Swift_LANGUAGE_VERSION 5)
add_executable (xM MACOSX_BUNDLE
	main.swift ${PROJECT_BINARY_DIR}/xC-proto.swift)