Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions ad_map_access/generated/include/ad/map/point/GeoPoint.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

#pragma once

#include <iomanip>
#include <iostream>
#include <limits>
#include <memory>
Expand Down Expand Up @@ -171,6 +172,7 @@ inline std::ostream &operator<<(std::ostream &os, GeoPoint const &_value)
{
os << "GeoPoint(";
os << "longitude:";
os << std::setprecision(9);
os << _value.longitude;
os << ",";
os << "latitude:";
Expand Down
3 changes: 3 additions & 0 deletions ad_map_access/python/generate_python_lib.py.in
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,9 @@ def main():
additional_replacements_component.append(
("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")
)
additional_replacements_component.append(
("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")
)
additional_replacements_component.append(
(".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")
)
Expand Down
2 changes: 2 additions & 0 deletions ad_physics/python/generate_python_lib.py.in
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,11 @@ def main():
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_point_xy_less__double__greater__comma__false_comma__true__greater_", "Polygon"),
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_point_xy_less__double__greater__comma__false__greater_", "Polygon"),
("polygon_less_boost_scope_geometry_scope_model_scope_d2_scope_point_xy_less_double_greater__comma__false_greater_", "Polygon"),
("polygon_less_boost_scope_geometry_scope_model_scope_d2_scope_point_xy_less_double_greater__comma__false_comma__true_greater_", "Polygon"),

("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"),
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false_comma__true__greater_", "Polygon"),
("polygon_less_boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false_comma__true_greater_", "Polygon"),
("polygon_less__boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false__greater_", "Polygon"),
("polygon_less_boost_scope_geometry_scope_model_scope_d2_scope_Point_comma__false_greater_", "Polygon"),

Expand Down
23 changes: 20 additions & 3 deletions cmake/python/python_wrapper_helper.py.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,13 @@

import os
import re
import sys

from pygccxml import parser
from pygccxml import utils
from pyplusplus import module_builder, decl_wrappers

import fileinput

import subprocess
import warnings


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

return all_files

def get_compiler_include_dirs(compiler_path):
# 1. Get the multiarch triplet (e.g., x86_64-linux-gnu)
triplet = subprocess.check_output([compiler_path, "-dumpmachine"]).decode().strip()

# 2. Get the GCC version (e.g., 13)
version = subprocess.check_output([compiler_path, "-dumpfullversion"]).decode().strip().split('.')[0]

# 3. Construct the standard paths
# Usually: /usr/include/c++/13
base_dir = f"/usr/include/c++/{version}"
# Usually: /usr/include/x86_64-linux-gnu/c++/13
arch_dir = f"/usr/include/{triplet}/c++/{version}"

return [base_dir, arch_dir]

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

# Find out the xml generator (gccxml or castxml)
generator_path, generator_name = utils.find_xml_generator()
compiler = "@CXX@"
compiler = "@CMAKE_CXX_COMPILER@"

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


for inc_dir in include_paths:
xml_generator_config.include_paths.append(inc_dir)
Expand Down
Loading