Docker build for SO
[osm/SO.git] / CMakeLists.txt
1
2 #   Copyright 2016 RIFT.IO Inc
3 #
4 #   Licensed under the Apache License, Version 2.0 (the "License");
5 #   you may not use this file except in compliance with the License.
6 #   You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #   Unless required by applicable law or agreed to in writing, software
11 #   distributed under the License is distributed on an "AS IS" BASIS,
12 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #   See the License for the specific language governing permissions and
14 #   limitations under the License.
15 #
16 # Author(s): Anil Gunturu
17 # Creation Date: 03/26/2014
18
19
20 ##
21 # DEPENDENCY ALERT
22 # The submodule dependencies must be specified in the
23 # .gitmodules.dep file at the top level (supermodule) directory
24 # If this submodule depends other submodules remember to update
25 # the .gitmodules.dep
26 ##
27
28 cmake_minimum_required(VERSION 2.8)
29
30 message(CMAKE_MODULE_PATH=${CMAKE_MODULE_PATH})
31
32 ##
33 # DO NOT add any code before this and DO NOT
34 # include this file anywhere else
35 ##
36 include(rift_submodule NO_POLICY_SCOPE)
37 include(rift_python)
38
39 ##
40 # Submodule specific includes will go here, 
41 # These are specified here, since these variables are accessed
42 # from multiple sub directories. If the variable is subdirectory
43 # specific it must be declared in the subdirectory.
44 ##
45
46 # Default package
47 set(INSTALL_COMPONENT mano)
48
49 option(PRODUCT "Control the details of the build" OSM)
50
51 if (PRODUCT STREQUAL "RIFTWARE")
52 set(INCLUDE_EXAMPLES ON)
53 else()
54 set(INCLUDE_EXAMPLES OFF)
55 endif()
56
57 ##
58 # Include the subdirs
59 ##
60 set(subdirs
61   common
62   models
63   rwcal
64   rwmon
65   rwcm
66   rwlaunchpad
67   rwprojectmano
68   )
69
70 if (NOT RIFT_AGENT_BUILD STREQUAL "XML_ONLY")
71   list(APPEND subdirs confd_client)
72 endif()
73
74 if (INCLUDE_EXAMPLES)
75    message("Including examples")
76    list(APPEND subdirs examples)
77 else()
78    message("NOT including examples")
79 endif()
80
81 rift_add_subdirs(SUBDIR_LIST ${subdirs})
82
83 install(FILES BUILD.sh DESTINATION bin COMPONENT installer)
84
85 ##
86 # Set up package details
87 ##
88
89 rift_set_component_package_fields(
90   "mano"
91   DESCRIPTION "RIFT.ware MANO"
92   )
93
94 rift_set_component_package_fields(
95   "rwcal-plugin-aws"
96   DESCRIPTION "RIFT.ware AWS plugin"
97   )
98
99 rift_set_component_package_fields(
100   "rwcal-plugin-cloudsim"
101   DESCRIPTION "RIFT.ware cloudsim plugin"
102   )
103
104 rift_set_component_package_fields(
105   "rwcal-plugin-cloudsimproxy"
106   DESCRIPTION "RIFT.ware cloudsimproxy plugin"
107   )
108
109 rift_set_component_package_fields(
110   "rwcal-plugin-openmano-vimconnector"
111   DESCRIPTION "RIFT.ware vimconnector plugin"
112   )
113
114 rift_set_component_package_fields(
115   "rwcal-plugin-openstack"
116   DESCRIPTION "RIFT.ware openstack plugin"
117   )
118
119 rift_set_component_package_fields(
120   "rwcal-plugin-brocade"
121   DESCRIPTION "RIFT.ware brocade plugin"
122   )
123
124 rift_set_component_package_fields(
125   "rwcal-plugin-mock"
126   DESCRIPTION "RIFT.ware mock plugin"
127   )
128
129 ##
130 # This macro adds targets for documentaion, unittests, code coverage and packaging
131 ##
132 rift_add_submodule_targets(SUBMODULE_PACKAGE_NAME "rw.core.mano")
133
134 # Workaround whatever mess rw.package is doing as it can't seem
135 # to figure out that it should make a directory -before- making
136 # symlinks..
137 set(dir usr/lib64/python${RIFT_PYTHON3}/site-packages/gi/overrides)
138 install(FILES
139   ${CMAKE_CURRENT_SOURCE_DIR}/.cpack-workaround
140   DESTINATION ${dir})
141
142 if (RIFT_SUPPORT_PYTHON2)
143   set(dir usr/lib64/python${RIFT_PYTHON2}/site-packages/gi/overrides)
144
145   install(FILES
146     ${CMAKE_CURRENT_SOURCE_DIR}/.cpack-workaround
147     DESTINATION ${dir})
148 endif()