11load (
2- "//ign_bazel:cmake_configure_file.bzl" ,
2+ "//ign_bazel:build_defs.bzl" ,
3+ "IGNITION_ROOT" ,
4+ "IGNITION_VISIBILITY" ,
35 "cmake_configure_file" ,
4- )
5- load (
6- "//ign_bazel:generate_include_header.bzl" ,
76 "generate_include_header" ,
8- )
9- load (
10- "//ign_bazel:ign_export_header.bzl" ,
7+ "ign_config_header" ,
118 "ign_export_header" ,
129)
10+
1311load (
1412 ":ign_msg_gen.bzl" ,
1513 "get_proto_headers" ,
1614 "ign_msg_gen" ,
1715)
1816
19- package (default_visibility = ["//visibility:public" ])
17+ package (
18+ default_visibility = IGNITION_VISIBILITY ,
19+ features = [
20+ "-parse_headers" ,
21+ "-layering_check" ,
22+ ],
23+ )
24+
25+ licenses (["notice" ])
26+
27+ exports_files (["LICENSE" ])
2028
2129PROJECT_NAME = "ignition-msgs"
2230
@@ -27,23 +35,12 @@ PROJECT_MINOR = 0
2735PROJECT_PATCH = 0
2836
2937# Generates config.hh based on the version numbers in CMake code.
30- cmake_configure_file (
38+ ign_config_header (
3139 name = "config" ,
3240 src = "include/ignition/msgs/config.hh.in" ,
33- out = "include/ignition/msgs/config.hh" ,
3441 cmakelists = ["CMakeLists.txt" ],
35- defines = [
36- "PROJECT_VERSION_MAJOR=%d" % PROJECT_MAJOR ,
37- "PROJECT_VERSION_MINOR=%d" % PROJECT_MINOR ,
38- "PROJECT_VERSION_PATCH=%d" % PROJECT_PATCH ,
39- "PROJECT_MAJOR_VERSION=%d" % PROJECT_MAJOR ,
40- "PROJECT_MINOR_VERSION=%d" % PROJECT_MINOR ,
41- "PROJECT_PATCH_VERSION=%d" % PROJECT_PATCH ,
42- "PROJECT_VERSION=%d.%d" % (PROJECT_MAJOR , PROJECT_MINOR ),
43- "PROJECT_VERSION_FULL=%d.%d.%d" % (PROJECT_MAJOR , PROJECT_MINOR , PROJECT_PATCH ), # noqa
44- "PROJECT_NAME_NO_VERSION=%s" % PROJECT_NAME ,
45- ],
46- visibility = ["//visibility:public" ],
42+ project_name = PROJECT_NAME ,
43+ project_version = (PROJECT_MAJOR , PROJECT_MINOR , PROJECT_PATCH ),
4744)
4845
4946ign_export_header (
@@ -67,6 +64,7 @@ generate_include_header(
6764 name = "messagetypeshh_genrule" ,
6865 out = "include/ignition/msgs/MessageTypes.hh" ,
6966 hdrs = get_proto_headers (protos ),
67+ strip_prefix = ["ign_msgs" ],
7068)
7169
7270generate_include_header (
@@ -120,50 +118,46 @@ ign_msg_gen(
120118 deps = [":ignmsgs_proto" ],
121119)
122120
123- cc_binary (
124- name = "libignition-msgs6.so " ,
121+ cc_library (
122+ name = "ign_msgs " ,
125123 srcs = [
126124 ":ignmsgs_proto_cc" ,
127125 "src/Factory.cc" ,
128126 "src/Filesystem.cc" ,
129127 "src/Utility.cc" ,
130- ] + public_headers ,
131- includes = ["include" ],
132- linkopts = [
133- "-Wl,-soname,libignition-msgs6.so" ,
134- "-ltinyxml2" ,
135128 ],
136- linkshared = True ,
137- linkstatic = True ,
138- visibility = [],
129+ hdrs = public_headers ,
130+ includes = ["include" ],
139131 deps = [
140132 ":ignmsgs_proto_cc" ,
141- "//ign_math" ,
133+ IGNITION_ROOT + "ign_math" ,
134+ "@tinyxml2" ,
142135 "@com_google_protobuf//:protobuf" ,
143136 ],
144137)
145138
146- cc_library (
147- name = "ign_msgs" ,
148- srcs = ["libignition-msgs6.so" ],
149- hdrs = public_headers + [":ignmsgs_proto_cc" ],
139+ # use shared library only when absolutely needd
140+ cc_binary (
141+ name = "libignition-msgs6.so" ,
150142 includes = ["include" ],
151- visibility = ["//visibility:public" ],
143+ linkopts = [
144+ "-Wl,-soname,libignition-msgs6.so" ,
145+ ],
146+ linkshared = True ,
147+ linkstatic = True ,
152148 deps = [
153- ":ignmsgs_proto_cc" ,
154- "//ign_math" ,
155- "@com_google_protobuf//:protobuf" ,
156- "@com_google_protobuf//:protoc_lib" ,
149+ ":ign_msgs" ,
157150 ],
158151)
159152
160153[cc_test (
161154 name = src .replace ("/" , "_" ).replace (".cc" , "" ).replace ("src_" , "" ),
162155 srcs = [src ],
163- data = ["// ign_msgs/test:desc/stringmsg.desc" ],
156+ data = [IGNITION_ROOT + " ign_msgs/test:desc/stringmsg.desc" ],
164157 deps = [
165158 ":ign_msgs" ,
166- "//ign_msgs/test:test_utils" ,
159+ IGNITION_ROOT + "ign_math" ,
160+ IGNITION_ROOT + "ign_msgs/test:test_utils" ,
167161 "@gtest" ,
168162 "@gtest//:gtest_main" ,
169163 ],
@@ -174,3 +168,5 @@ cc_library(
174168)]
175169
176170exports_files (["src/cmd/cmdmsgs.rb.in" ])
171+
172+ exports_files (["CMakeLists.txt" ])
0 commit comments