dsf-mobility 3.9.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dsf_mobility-3.9.4/CMakeLists.txt +103 -0
- dsf_mobility-3.9.4/Doxyfile +2824 -0
- dsf_mobility-3.9.4/LICENSE +437 -0
- dsf_mobility-3.9.4/MANIFEST.in +10 -0
- dsf_mobility-3.9.4/PKG-INFO +158 -0
- dsf_mobility-3.9.4/README.md +115 -0
- dsf_mobility-3.9.4/dsf_mobility.egg-info/PKG-INFO +158 -0
- dsf_mobility-3.9.4/dsf_mobility.egg-info/SOURCES.txt +54 -0
- dsf_mobility-3.9.4/dsf_mobility.egg-info/dependency_links.txt +1 -0
- dsf_mobility-3.9.4/dsf_mobility.egg-info/not-zip-safe +1 -0
- dsf_mobility-3.9.4/dsf_mobility.egg-info/requires.txt +1 -0
- dsf_mobility-3.9.4/dsf_mobility.egg-info/top_level.txt +1 -0
- dsf_mobility-3.9.4/pyproject.toml +3 -0
- dsf_mobility-3.9.4/requirements.txt +12 -0
- dsf_mobility-3.9.4/setup.cfg +4 -0
- dsf_mobility-3.9.4/setup.py +476 -0
- dsf_mobility-3.9.4/src/dsf/binding.cpp +497 -0
- dsf_mobility-3.9.4/src/dsf/dsf.hpp +35 -0
- dsf_mobility-3.9.4/src/dsf/headers/AdjacencyMatrix.hpp +119 -0
- dsf_mobility-3.9.4/src/dsf/headers/Agent.hpp +175 -0
- dsf_mobility-3.9.4/src/dsf/headers/Dynamics.hpp +101 -0
- dsf_mobility-3.9.4/src/dsf/headers/Edge.hpp +93 -0
- dsf_mobility-3.9.4/src/dsf/headers/FirstOrderDynamics.hpp +53 -0
- dsf_mobility-3.9.4/src/dsf/headers/Intersection.hpp +133 -0
- dsf_mobility-3.9.4/src/dsf/headers/Itinerary.hpp +60 -0
- dsf_mobility-3.9.4/src/dsf/headers/Network.hpp +262 -0
- dsf_mobility-3.9.4/src/dsf/headers/Node.hpp +116 -0
- dsf_mobility-3.9.4/src/dsf/headers/Road.hpp +98 -0
- dsf_mobility-3.9.4/src/dsf/headers/RoadDynamics.hpp +2381 -0
- dsf_mobility-3.9.4/src/dsf/headers/RoadJunction.hpp +89 -0
- dsf_mobility-3.9.4/src/dsf/headers/RoadNetwork.hpp +419 -0
- dsf_mobility-3.9.4/src/dsf/headers/Roundabout.hpp +60 -0
- dsf_mobility-3.9.4/src/dsf/headers/Sensors.hpp +34 -0
- dsf_mobility-3.9.4/src/dsf/headers/SparseMatrix.hpp +353 -0
- dsf_mobility-3.9.4/src/dsf/headers/Station.hpp +56 -0
- dsf_mobility-3.9.4/src/dsf/headers/Street.hpp +265 -0
- dsf_mobility-3.9.4/src/dsf/headers/TrafficLight.hpp +174 -0
- dsf_mobility-3.9.4/src/dsf/sources/AdjacencyMatrix.cpp +270 -0
- dsf_mobility-3.9.4/src/dsf/sources/Agent.cpp +79 -0
- dsf_mobility-3.9.4/src/dsf/sources/Edge.cpp +93 -0
- dsf_mobility-3.9.4/src/dsf/sources/FirstOrderDynamics.cpp +114 -0
- dsf_mobility-3.9.4/src/dsf/sources/Intersection.cpp +38 -0
- dsf_mobility-3.9.4/src/dsf/sources/Itinerary.cpp +64 -0
- dsf_mobility-3.9.4/src/dsf/sources/Road.cpp +89 -0
- dsf_mobility-3.9.4/src/dsf/sources/RoadJunction.cpp +26 -0
- dsf_mobility-3.9.4/src/dsf/sources/RoadNetwork.cpp +1113 -0
- dsf_mobility-3.9.4/src/dsf/sources/Roundabout.cpp +20 -0
- dsf_mobility-3.9.4/src/dsf/sources/Sensors.cpp +25 -0
- dsf_mobility-3.9.4/src/dsf/sources/Station.cpp +38 -0
- dsf_mobility-3.9.4/src/dsf/sources/Street.cpp +208 -0
- dsf_mobility-3.9.4/src/dsf/sources/TrafficLight.cpp +173 -0
- dsf_mobility-3.9.4/src/dsf/utility/TypeTraits/is_node.hpp +73 -0
- dsf_mobility-3.9.4/src/dsf/utility/TypeTraits/is_numeric.hpp +23 -0
- dsf_mobility-3.9.4/src/dsf/utility/TypeTraits/is_street.hpp +30 -0
- dsf_mobility-3.9.4/src/dsf/utility/Typedef.hpp +60 -0
- dsf_mobility-3.9.4/src/dsf/utility/queue.hpp +42 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.16.0)
|
|
2
|
+
|
|
3
|
+
# Read version from header file
|
|
4
|
+
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/src/dsf/dsf.hpp" DSF_HPP_CONTENT)
|
|
5
|
+
string(REGEX MATCH "DSF_VERSION_MAJOR = ([0-9]+)" _ ${DSF_HPP_CONTENT})
|
|
6
|
+
set(DSF_VERSION_MAJOR ${CMAKE_MATCH_1})
|
|
7
|
+
string(REGEX MATCH "DSF_VERSION_MINOR = ([0-9]+)" _ ${DSF_HPP_CONTENT})
|
|
8
|
+
set(DSF_VERSION_MINOR ${CMAKE_MATCH_1})
|
|
9
|
+
string(REGEX MATCH "DSF_VERSION_PATCH = ([0-9]+)" _ ${DSF_HPP_CONTENT})
|
|
10
|
+
set(DSF_VERSION_PATCH ${CMAKE_MATCH_1})
|
|
11
|
+
|
|
12
|
+
set(DSF_VERSION "${DSF_VERSION_MAJOR}.${DSF_VERSION_MINOR}.${DSF_VERSION_PATCH}")
|
|
13
|
+
|
|
14
|
+
project(dsf VERSION ${DSF_VERSION} LANGUAGES CXX)
|
|
15
|
+
|
|
16
|
+
# Set the C++ standard
|
|
17
|
+
set(CMAKE_CXX_STANDARD 20)
|
|
18
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
19
|
+
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
20
|
+
|
|
21
|
+
# Ensure optimization flags are applied only in Release mode
|
|
22
|
+
if (CMAKE_BUILD_TYPE MATCHES "Release")
|
|
23
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast -march=native -flto=auto")
|
|
24
|
+
endif()
|
|
25
|
+
|
|
26
|
+
find_package(TBB REQUIRED CONFIG)
|
|
27
|
+
find_package(fmt REQUIRED)
|
|
28
|
+
find_package(spdlog REQUIRED)
|
|
29
|
+
find_package(simdjson REQUIRED)
|
|
30
|
+
|
|
31
|
+
file(GLOB SOURCES "src/dsf/sources/*.cpp" "src/dsf/utility/*.cpp")
|
|
32
|
+
|
|
33
|
+
include(FetchContent)
|
|
34
|
+
# Get csv-parser
|
|
35
|
+
FetchContent_Declare(csv_parser
|
|
36
|
+
GIT_REPOSITORY https://github.com/vincentlaucsb/csv-parser.git
|
|
37
|
+
GIT_TAG 2.3.0
|
|
38
|
+
)
|
|
39
|
+
FetchContent_MakeAvailable(csv_parser)
|
|
40
|
+
|
|
41
|
+
# Get csv source files manually to avoid export issues
|
|
42
|
+
file(GLOB CSV_SOURCES "${csv_parser_SOURCE_DIR}/include/internal/*.cpp")
|
|
43
|
+
|
|
44
|
+
add_library(dsf STATIC ${SOURCES} ${CSV_SOURCES})
|
|
45
|
+
target_include_directories(dsf PUBLIC
|
|
46
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/headers>
|
|
47
|
+
$<INSTALL_INTERFACE:include>
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
# Include csv headers privately
|
|
51
|
+
target_include_directories(dsf PRIVATE "${csv_parser_SOURCE_DIR}/include")
|
|
52
|
+
|
|
53
|
+
# Link other libraries - no csv dependency needed now
|
|
54
|
+
target_link_libraries(dsf PRIVATE TBB::tbb fmt::fmt spdlog::spdlog simdjson::simdjson)
|
|
55
|
+
|
|
56
|
+
# Install dsf library
|
|
57
|
+
install(TARGETS dsf
|
|
58
|
+
EXPORT dsfConfig
|
|
59
|
+
ARCHIVE DESTINATION lib
|
|
60
|
+
LIBRARY DESTINATION lib
|
|
61
|
+
RUNTIME DESTINATION bin)
|
|
62
|
+
|
|
63
|
+
install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
|
|
64
|
+
|
|
65
|
+
install(EXPORT dsfConfig
|
|
66
|
+
FILE dsfConfig.cmake
|
|
67
|
+
NAMESPACE dsf::
|
|
68
|
+
DESTINATION lib/cmake/dsf)
|
|
69
|
+
|
|
70
|
+
# Optional Python bindings - only build if requested
|
|
71
|
+
option(BUILD_PYTHON_BINDINGS "Build Python bindings" OFF)
|
|
72
|
+
|
|
73
|
+
if(BUILD_PYTHON_BINDINGS)
|
|
74
|
+
include(FetchContent)
|
|
75
|
+
|
|
76
|
+
# Get pybind11
|
|
77
|
+
FetchContent_Declare(pybind11
|
|
78
|
+
GIT_REPOSITORY https://github.com/pybind/pybind11.git
|
|
79
|
+
GIT_TAG v3.0.1
|
|
80
|
+
)
|
|
81
|
+
FetchContent_GetProperties(pybind11)
|
|
82
|
+
if(NOT pybind11_POPULATED)
|
|
83
|
+
FetchContent_MakeAvailable(pybind11)
|
|
84
|
+
endif()
|
|
85
|
+
|
|
86
|
+
# Add the Python binding module
|
|
87
|
+
add_library(dsf_python_module MODULE src/dsf/binding.cpp)
|
|
88
|
+
|
|
89
|
+
# Ensure the Python module name has no 'lib' prefix on Unix systems
|
|
90
|
+
set_target_properties(dsf_python_module PROPERTIES
|
|
91
|
+
PREFIX ""
|
|
92
|
+
OUTPUT_NAME "dsf"
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
# Link the pybind11 module with your static library and pybind11
|
|
96
|
+
target_link_libraries(dsf_python_module PRIVATE dsf pybind11::module pybind11::headers)
|
|
97
|
+
|
|
98
|
+
# Set include directories (if binding.cpp needs headers from your project)
|
|
99
|
+
target_include_directories(dsf_python_module PRIVATE
|
|
100
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/headers
|
|
101
|
+
)
|
|
102
|
+
endif()
|
|
103
|
+
|