CodeCompass

Форк
0
/
Config.cmake 
115 строк · 4.1 Кб
1
# Set a default build type if none was specified
2
set(DEFAULT_BUILD_TYPE "RelWithDebInfo")
3
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
4
  message(STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.")
5
  set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "Choose the type of build." FORCE)
6
  # Set the possible values of build type for cmake-gui
7
  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
8
endif()
9

10
# Installation directory for libraries
11
set(INSTALL_LIB_DIR_NAME "lib")
12
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR_NAME}")
13

14
# Installation directory for parser libraries
15
set(INSTALL_PARSER_DIR_NAME "parserplugin")
16
set(INSTALL_PARSER_DIR "${INSTALL_LIB_DIR}/${INSTALL_PARSER_DIR_NAME}")
17

18
# Installation directory for service libraries
19
set(INSTALL_SERVICE_DIR_NAME "serviceplugin")
20
set(INSTALL_SERVICE_DIR "${INSTALL_LIB_DIR}/${INSTALL_SERVICE_DIR_NAME}")
21

22
# Installation directory for authentication libraries
23
set(INSTALL_AUTH_DIR_NAME "authplugin")
24
set(INSTALL_AUTH_DIR "${INSTALL_LIB_DIR}/${INSTALL_AUTH_DIR_NAME}")
25

26
# Installation directory of web GUI
27
set(INSTALL_WEBROOT_DIR "${CMAKE_INSTALL_PREFIX}/share/codecompass/webgui")
28

29
# Installation directory of the new React-based web GUI
30
set(INSTALL_WEBROOT_REACT_DIR "${CMAKE_INSTALL_PREFIX}/share/codecompass/webgui-new")
31

32
# Installation directory of SQL files
33
set(INSTALL_SQL_DIR "${CMAKE_INSTALL_PREFIX}/share/codecompass/sql")
34

35
# Global variable to collect userguides
36
define_property(GLOBAL PROPERTY USERGUIDES
37
  BRIEF_DOCS "Global list of userguides"
38
  FULL_DOCS  "Global list of userguides")
39
set_property(GLOBAL PROPERTY USERGUIDES
40
  "${CMAKE_CURRENT_SOURCE_DIR}/webgui/userguide/userguide.md")
41

42
# Installation directory of third-party JS scripts
43
set(INSTALL_WEBPLUGIN_DIR "${INSTALL_WEBROOT_DIR}/scripts/plugins")
44

45
# Installation directory of GUI scripts
46
set(INSTALL_SCRIPTS_DIR "${INSTALL_WEBROOT_DIR}/scripts/codecompass")
47

48
# Installation directory of generated Thrift API stubs
49
set(INSTALL_GEN_DIR "${INSTALL_SCRIPTS_DIR}/generated")
50

51
# Installation directory for Java libraries
52
set(INSTALL_JAVA_LIB_DIR "${INSTALL_LIB_DIR}/java")
53

54
# Installation directory for executables
55
set(INSTALL_BIN_DIR "bin")
56

57
set(DATABASE sqlite CACHE STRING "Database type")
58
string(TOUPPER ${DATABASE} DATABASE_U)
59

60
# Set up the dynamic libraries' runtime path to the install folder
61
set(CMAKE_SKIP_BUILD_RPATH FALSE)
62
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
63
string(CONCAT CMAKE_INSTALL_RPATH
64
  ".;$ORIGIN;..;$ORIGIN/.."
65
  ";../${INSTALL_LIB_DIR_NAME}"
66
  ";$ORIGIN/../${INSTALL_LIB_DIR_NAME}"
67
  ";../${INSTALL_LIB_DIR_NAME}/${INSTALL_PARSER_DIR_NAME}"
68
  ";$ORIGIN/../${INSTALL_LIB_DIR_NAME}/${INSTALL_PARSER_DIR_NAME}"
69
  ";../${INSTALL_LIB_DIR_NAME}/${INSTALL_SERVICE_DIR_NAME}"
70
  ";$ORIGIN/../${INSTALL_LIB_DIR_NAME}/${INSTALL_SERVICE_DIR_NAME}"
71
  ";../${INSTALL_LIB_DIR_NAME}/${INSTALL_AUTH_DIR_NAME}"
72
  ";$ORIGIN/../${INSTALL_LIB_DIR_NAME}/${INSTALL_AUTH_DIR_NAME}")
73
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
74

75
# Odb commands
76
set(ODB odb)
77
set(ODBFLAGS
78
  --std c++11
79
  --database ${DATABASE}
80
  --generate-query
81
  --generate-schema
82
  --schema-format sql
83
  --sql-file-suffix -odb
84
  --pgsql-server-version 9.1
85
  --include-prefix model/
86
  --include-with-brackets
87
  --default-pointer "std::shared_ptr")
88

89
# Set CXX standard
90
set(CMAKE_CXX_STANDARD 14)
91
set(CMAKE_CXX_STANDARD_REQUIRED ON)
92
set(CMAKE_CXX_EXTENSIONS OFF)
93

94
# Set CXX flags
95
set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -pedantic\
96
  -DDATABASE_${DATABASE_U} \
97
  -DBOOST_LOG_DYN_LINK")
98

99
# Gold is the primary linker 
100
if(NOT DEFINED CODECOMPASS_LINKER)
101
    set(CODECOMPASS_LINKER "gold")
102
endif()
103

104
set(CMAKE_LINKER "${CODECOMPASS_LINKER}")
105

106
# Cmake module directory (FindOdb, FindThrift etc.)
107
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}")
108

109
# Set build type specific flags here. Default values are:
110
# CMAKE_CXX_FLAGS_DEBUG:          -g
111
# CMAKE_CXX_FLAGS_RELEASE:        -O3 -DNDEBUG
112
# CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O2 -g -DNDEBUG
113
# CMAKE_CXX_FLAGS_MINSIZEREL:     -Os -DNDEBUG
114
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb3")
115
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -ggdb3 -DNDEBUG")
116

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.