Skip to content

Commit 650730c

Browse files
authored
Merge pull request #156 from resibots/fix_flags
CMake: Fix exporting private flags
2 parents b8f0db5 + 4fa3d47 commit 650730c

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

waf_tools/corrade.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,15 +202,16 @@ def find_in_string(data, text):
202202
return 1
203203

204204
@conf
205-
def corrade_enable_pedantic_flags(conf):
205+
def corrade_enable_pedantic_flags(conf, visibility_hidden=False):
206206
corrade_flags = '-Wall \
207207
-Wextra \
208208
-Wold-style-cast \
209209
-Winit-self \
210210
-Werror=return-type \
211211
-Wmissing-declarations \
212-
-pedantic \
213-
-fvisibility=hidden'
212+
-pedantic'
213+
if visibility_hidden:
214+
corrade_flags += ' -fvisibility=hidden'
214215
corrade_flags = corrade_flags.split()
215216
conf.env['CXXFLAGS'] = list(set(conf.env['CXXFLAGS'] + corrade_flags))
216217

wscript

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import sys
44
import os
55
import fnmatch
66
import glob
7+
import copy
78
sys.path.insert(0, sys.path[0]+'/waf_tools')
89

910
VERSION = '1.0.0'
@@ -115,7 +116,7 @@ def configure(conf):
115116
elif conf.env.CXX_NAME in ["clang"]:
116117
common_flags = "-Wall -std=c++11"
117118
# no-stack-check required for Catalina
118-
opt_flags = " -O3 -g -faligned-new -fno-stack-check" + native
119+
opt_flags = " -O3 -g -faligned-new -fno-stack-check" + native
119120
else:
120121
gcc_version = int(conf.env['CC_VERSION'][0]+conf.env['CC_VERSION'][1])
121122
if gcc_version < 47:
@@ -129,13 +130,20 @@ def configure(conf):
129130
all_flags = common_flags + conf.env['py_flags'] + opt_flags
130131
conf.env['CXXFLAGS'] = conf.env['CXXFLAGS'] + all_flags.split(' ')
131132

133+
if conf.env.CXX_NAME in ["icc", "icpc"]:
134+
conf.env['PUBLIC_CXXFLAGS'] = native_icc.split(' ')
135+
elif conf.env.CXX_NAME in ["clang"]:
136+
conf.env['PUBLIC_CXXFLAGS'] = ("-faligned-new -fno-stack-check" + native).split(' ')
137+
else:
138+
conf.env['PUBLIC_CXXFLAGS'] = ("-faligned-new" + native).split(' ')
139+
132140
if len(conf.env.CXXFLAGS_DART) > 0:
133141
if '-std=c++11' in conf.env['CXXFLAGS']:
134142
conf.env['CXXFLAGS'].remove('-std=c++11')
135143
if '-std=c++0x' in conf.env['CXXFLAGS']:
136144
conf.env['CXXFLAGS'].remove('-std=c++0x')
137145
conf.env['CXXFLAGS'] = conf.env['CXXFLAGS'] + conf.env.CXXFLAGS_DART
138-
146+
139147
# add strict flags for warnings
140148
corrade.corrade_enable_pedantic_flags(conf)
141149
print(conf.env['CXXFLAGS'])
@@ -246,7 +254,7 @@ def build(bld):
246254
f.write('#define ROBOT_DART_VERSION_MAJOR ' + version[0] + '\n')
247255
f.write('#define ROBOT_DART_VERSION_MINOR ' + version[1] + '\n')
248256
f.write('#define ROBOT_DART_VERSION_PATCH ' + version[2] + '\n')
249-
f.write('#define ROBOT_DART_ROBOTS_DIR \"' + prefix + '/share/robot_dart/robots\"\n')
257+
f.write('#define ROBOT_DART_ROBOTS_DIR \"' + prefix + '/share/robot_dart/robots\"\n')
250258
bld.install_files("${PREFIX}/include/robot_dart/", config_file)
251259

252260
#### install the URDF library (robots)
@@ -301,7 +309,7 @@ def build(bld):
301309
if 'dart-collision-ode' in bld.env.LIB_DART:
302310
dart_extra_libs += ' collision-ode '
303311

304-
cxx_flags = ''.join(x + ';' for x in bld.env['CXXFLAGS'])
312+
cxx_flags = ''.join(x + ';' for x in bld.env['PUBLIC_CXXFLAGS'])
305313

306314
lib_type = '.a'
307315
if bld.env['lib_type'] == 'cxxshlib':

0 commit comments

Comments
 (0)