Skip to content

Commit 57de72b

Browse files
committed
Some robustness increase on Ubuntu 24.04
1 parent a0c29cb commit 57de72b

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
lines changed

ad_map_access/generated/include/ad/map/point/GeoPoint.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#pragma once
1919

20+
#include <iomanip>
2021
#include <iostream>
2122
#include <limits>
2223
#include <memory>
@@ -171,6 +172,7 @@ inline std::ostream &operator<<(std::ostream &os, GeoPoint const &_value)
171172
{
172173
os << "GeoPoint(";
173174
os << "longitude:";
175+
os << std::setprecision(9);
174176
os << _value.longitude;
175177
os << ",";
176178
os << "latitude:";

ad_map_access/python/generate_python_lib.py.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,9 @@ def main():
136136
additional_replacements_component.append(
137137
("bp::class_< std::vector<boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, true>>, boost::noncopyable >( \"PolygonVector\" )", "// generate_python_lib.py: PolygonVector manually removed here")
138138
)
139+
additional_replacements_component.append(
140+
("bp::class_<std::vector<boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, true>>, boost::noncopyable>( \"PolygonVector\" )", "// generate_python_lib.py: PolygonVector manually removed here")
141+
)
139142
additional_replacements_component.append(
140143
(".def( bp::indexing::vector_suite< std::vector< boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double, boost::geometry::cs::cartesian>, false, true, std::vector, std::vector, std::allocator, std::allocator> > >() );", "// generate_python_lib.py: PolygonVector manually removed here")
141144
)

ad_physics/python/generate_python_lib.py.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@ def main():
4343
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_point_xy_less__double__greater__comma__false_comma__true__greater_", "Polygon"),
4444
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_point_xy_less__double__greater__comma__false__greater_", "Polygon"),
4545
("polygon_less_boost_scope_geometry_scope_model_scope_d2_scope_point_xy_less_double_greater__comma__false_greater_", "Polygon"),
46+
("polygon_less_boost_scope_geometry_scope_model_scope_d2_scope_point_xy_less_double_greater__comma__false_comma__true_greater_", "Polygon"),
4647

4748
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false_comma__true_comma__std_scope_vector_comma__std_scope_vector_comma__std_scope_allocator_comma__std_scope_allocator__greater_", "Polygon"),
4849
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false_comma__true__greater_", "Polygon"),
50+
("polygon_less_boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false_comma__true_greater_", "Polygon"),
4951
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false__greater_", "Polygon"),
5052
("polygon_less_boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false_greater_", "Polygon"),
5153

cmake/python/python_wrapper_helper.py.in

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@
77

88
import os
99
import re
10-
import sys
1110

1211
from pygccxml import parser
1312
from pygccxml import utils
1413
from pyplusplus import module_builder, decl_wrappers
1514

1615
import fileinput
17-
16+
import subprocess
1817
import warnings
1918

2019

@@ -40,6 +39,20 @@ def get_list_of_files(directory, ignore_files):
4039

4140
return all_files
4241

42+
def get_compiler_include_dirs(compiler_path):
43+
# 1. Get the multiarch triplet (e.g., x86_64-linux-gnu)
44+
triplet = subprocess.check_output([compiler_path, "-dumpmachine"]).decode().strip()
45+
46+
# 2. Get the GCC version (e.g., 13)
47+
version = subprocess.check_output([compiler_path, "-dumpfullversion"]).decode().strip().split('.')[0]
48+
49+
# 3. Construct the standard paths
50+
# Usually: /usr/include/c++/13
51+
base_dir = f"/usr/include/c++/{version}"
52+
# Usually: /usr/include/x86_64-linux-gnu/c++/13
53+
arch_dir = f"/usr/include/{triplet}/c++/{version}"
54+
55+
return [base_dir, arch_dir]
4356

4457
def generate_python_wrapper(header_directories, include_paths, library_name, cpp_filename, declarations, main_namespace="", ignore_declarations={}, ignore_files={}, add_declarations={}):
4558
"""
@@ -71,7 +84,7 @@ def generate_python_wrapper(header_directories, include_paths, library_name, cpp
7184

7285
# Find out the xml generator (gccxml or castxml)
7386
generator_path, generator_name = utils.find_xml_generator()
74-
compiler = "@CXX@"
87+
compiler = "@CMAKE_CXX_COMPILER@"
7588

7689
# Create configuration for CastXML
7790
xml_generator_config = parser.xml_generator_configuration_t(
@@ -85,6 +98,10 @@ def generate_python_wrapper(header_directories, include_paths, library_name, cpp
8598
xml_generator_config.append_cflags("-Wno-error=invalid-constexpr")
8699
xml_generator_config.append_cflags("-DSAFE_DATATYPES_EXPLICIT_CONVERSION=1")
87100
xml_generator_config.append_cflags("-fsized-deallocation")
101+
for folder in get_compiler_include_dirs(compiler):
102+
if os.path.exists(folder):
103+
xml_generator_config.append_cflags(f"-isystem {folder}")
104+
88105

89106
for inc_dir in include_paths:
90107
xml_generator_config.include_paths.append(inc_dir)

0 commit comments

Comments
 (0)