-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProjectProperties.cmake
81 lines (77 loc) · 3.62 KB
/
ProjectProperties.cmake
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
if(NOT CU_PROJECT_FULL_NAME)
set(CU_PROJECT_FULL_NAME "${PROJECT_NAME}")
message(STATUS "CU_PROJECT_FULL_NAME not set, using default value: ${PROJECT_NAME}")
endif()
if(NOT CU_COMPANY_NAME)
message(FATAL_ERROR "Required variable CU_COMPANY_NAME not defined before including ProjectProperties.cmake")
endif()
if(NOT CU_COMPANY_DOMAIN)
set(CU_COMPANY_DOMAIN "com")
message(STATUS "CU_COMPANY_DOMAIN not set, using default value: ${CU_COMPANY_DOMAIN}")
endif()
string(TOLOWER "${CU_COMPANY_NAME}.${CU_COMPANY_DOMAIN}" CU_DOMAIN_NAME)
string(TOLOWER "${CU_COMPANY_DOMAIN}.${CU_COMPANY_NAME}" CU_REVERSE_DOMAIN_NAME)
if(NOT CU_COMPANY_URL)
set(CU_COMPANY_URL "https://www.${CU_DOMAIN_NAME}")
message(STATUS "CU_COMPANY_URL not set, using default value: ${CU_COMPANY_URL}")
endif()
if(NOT CU_PROJECT_URLABOUTINFO)
set(CU_PROJECT_URLABOUTINFO "${CU_COMPANY_URL}")
message(STATUS "CU_PROJECT_URLABOUTINFO not set, using default value: ${CU_PROJECT_URLABOUTINFO}")
endif()
if(NOT CU_PROJECT_CONTACT)
string(TOLOWER "${PROJECT_NAME}@${CU_COMPANY_NAME}.com" CU_PROJECT_CONTACT)
message(STATUS "CU_PROJECT_CONTACT not set, using default value: ${CU_PROJECT_CONTACT}")
endif()
if(NOT CU_PROJECT_PRODUCTDESCRIPTION)
message(FATAL_ERROR "Required variable CU_PROJECT_PRODUCTDESCRIPTION not defined before including ProjectProperties.cmake")
endif()
if(NOT CU_PROJECT_STARTING_YEAR)
message(FATAL_ERROR "Required variable CU_PROJECT_STARTING_YEAR not defined before including ProjectProperties.cmake")
endif()
if(NOT CU_COPYRIGHT_HOLDER)
set(CU_COPYRIGHT_HOLDER "${CU_COMPANY_NAME}")
message(STATUS "CU_COPYRIGHT_HOLDER not set, using default value: ${CU_COMPANY_NAME}")
endif()
if(NOT CU_BETA_TAG)
set(CU_BETA_TAG "-beta")
message(STATUS "CU_BETA_TAG not set, using default value: -beta")
endif()
if(CMAKE_HOST_APPLE)
if(ENABLE_CODE_SIGNING)
if("${CMAKE_GENERATOR}" STREQUAL "Xcode" AND NOT CU_TEAM_IDENTIFIER)
message(FATAL_ERROR "Required variable (CU_TEAM_IDENTIFIER) not defined before including ProjectProperties.cmake")
endif()
if(NOT CU_BINARY_SIGNING_IDENTITY)
message(FATAL_ERROR "Required variable (CU_BINARY_SIGNING_IDENTITY) not defined before including ProjectProperties.cmake")
endif()
if(NOT CU_INSTALLER_SIGNING_IDENTITY)
message(FATAL_ERROR "Required variable (CU_INSTALLER_SIGNING_IDENTITY) not defined before including ProjectProperties.cmake")
endif()
endif()
# Due to CMake 3.23 breaking change in CPack.Distribution, we have to forbid it for now
# Until https://gitlab.kitware.com/cmake/cmake/-/issues/18201 is fixed
# Fixed by https://gitlab.kitware.com/cmake/cmake/-/issues/23467
if(${CMAKE_VERSION} VERSION_GREATER "3.22.99")
if(${CMAKE_VERSION} VERSION_LESS "3.23.2")
message(FATAL_ERROR "CMake versions 3.23.0 and 3.23.1 are bugged, upgrade to newer version (see comments above)")
endif()
endif()
endif()
if(WIN32)
if(ENABLE_CODE_SIGNING AND NOT CU_SIGNTOOL_OPTIONS)
message(FATAL_ERROR "Required variable (CU_SIGNTOOL_OPTIONS) not defined before including ProjectProperties.cmake")
endif()
find_program(DOT_PROGRAM "dot")
if(NOT DOT_PROGRAM)
message(STATUS "Graphviz's 'dot' not found in the path. Make sure it's installed and in the path if you want class graph in Doxygen. Download it from http://www.graphviz.org/")
set(HAVE_DOT "NO")
else()
set(HAVE_DOT "YES")
endif()
else()
set(HAVE_DOT "NO")
endif()
if(DEFINED CU_PROJECT_BUNDLEIDENTIFIER)
message(FATAL_ERROR "Variable CU_PROJECT_BUNDLEIDENTIFIER is deprecated (internal use only). Use CU_TARGET_BUNDLE_IDENTIFIER before calling cu_setup_executable_options if you want to override the default value (Which is '${CU_REVERSE_DOMAIN_NAME}.\${TARGET_NAME}').")
endif()