Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/CMakeLists.txt
193674 views
1
set(netconvertlibs
2
netwrite netimport netbuild foreign_eulerspiral ${GDAL_LIBRARY}
3
netimport_vissim netimport_vissim_typeloader netimport_vissim_tempstructs
4
${commonlibs} ${TCMALLOC_LIBRARY})
5
6
set(sumolibs
7
traciserver netload microsim_cfmodels microsim_engine microsim_lcmodels
8
microsim_devices microsim_trigger microsim_output microsim_transportables
9
microsim_actions microsim_traffic_lights microsim mesosim ${commonvehiclelibs}
10
${GEOS_LIBRARY} ${BOOST_LIBRARIES})
11
12
if (OPENSCENEGRAPH_FOUND)
13
set(osgviewlib osgview)
14
endif ()
15
16
set(sumoguilibs
17
guinetload guisim gui gui_dialogs utils_gui_windows utils_gui_globjects
18
utils_gui_div utils_gui_settings utils_gui_images utils_gui_cursors
19
utils_gui_shortcuts utils_tests utils_gui_tracker utils_foxtools
20
${osgviewlib} ${sumolibs} mesogui
21
${GDAL_LIBRARY} ${FFMPEG_LIBRARIES} ${OPENSCENEGRAPH_LIBRARIES} ${GL2PS_LIBRARIES})
22
if (MSVC)
23
set(sumoguilibs ${sumoguilibs} opengl32 glu32)
24
endif ()
25
if ((GNU_COMPILER OR CLANG_COMPILER) AND NOT APPLE)
26
set(sumolibs -Wl,--whole-archive ${sumolibs} -Wl,--no-whole-archive)
27
set(sumoguilibs -Wl,--whole-archive ${sumoguilibs} -Wl,--no-whole-archive)
28
endif()
29
30
add_subdirectory(activitygen)
31
add_subdirectory(dfrouter)
32
add_subdirectory(duarouter)
33
if (FMI)
34
add_subdirectory(fmi)
35
endif ()
36
add_subdirectory(foreign)
37
add_subdirectory(jtrrouter)
38
add_subdirectory(libsumo)
39
add_subdirectory(libtraci)
40
add_subdirectory(marouter)
41
add_subdirectory(mesosim)
42
add_subdirectory(microsim)
43
add_subdirectory(netbuild)
44
add_subdirectory(netgen)
45
add_subdirectory(netimport)
46
add_subdirectory(netload)
47
add_subdirectory(netwrite)
48
add_subdirectory(od)
49
if (OPENSCENEGRAPH_FOUND)
50
add_subdirectory(osgview)
51
endif ()
52
add_subdirectory(polyconvert)
53
add_subdirectory(router)
54
add_subdirectory(tools)
55
add_subdirectory(traci-server)
56
add_subdirectory(traci_testclient)
57
add_subdirectory(utils)
58
if (FOX_FOUND)
59
add_subdirectory(gui)
60
add_subdirectory(guinetload)
61
add_subdirectory(guisim)
62
add_subdirectory(mesogui)
63
if (NETEDIT)
64
add_subdirectory(netedit)
65
endif ()
66
endif ()
67
68
add_executable(sumo sumo_main.cpp)
69
set_target_properties(sumo PROPERTIES OUTPUT_NAME sumo${BINARY_SUFFIX})
70
set_target_properties(sumo PROPERTIES OUTPUT_NAME_DEBUG sumo${BINARY_SUFFIX}D)
71
target_link_libraries(sumo ${sumolibs} libsumostatic ${TCMALLOC_LIBRARY})
72
add_dependencies(sumo generate-version-h install_dll)
73
74
if (FOX_FOUND)
75
add_executable(sumo-gui guisim_main.cpp sumo-gui.rc)
76
set_target_properties(sumo-gui PROPERTIES OUTPUT_NAME sumo-gui${BINARY_SUFFIX})
77
set_target_properties(sumo-gui PROPERTIES OUTPUT_NAME_DEBUG sumo-gui${BINARY_SUFFIX}D)
78
target_link_libraries(sumo-gui ${sumoguilibs} libsumoguistatic ${TCMALLOC_LIBRARY})
79
if (MSVC)
80
if (CONSOLE_RELEASE)
81
set_target_properties(sumo-gui PROPERTIES LINK_FLAGS_RELEASE "/ENTRY:mainCRTStartup")
82
else ()
83
set_target_properties(sumo-gui PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
84
endif()
85
if (FFMPEG_FOUND)
86
set_target_properties(sumo-gui PROPERTIES LINK_FLAGS "/SAFESEH:NO")
87
endif ()
88
if (CMAKE_VERSION VERSION_LESS "3.16.0")
89
message(STATUS "DPI awareness for sumo-gui will be disabled. Please consider using CMake version >= 3.16 to enable it")
90
else ()
91
set_target_properties(sumo-gui PROPERTIES VS_DPI_AWARE "ON")
92
endif ()
93
endif ()
94
add_dependencies(sumo-gui generate-version-h install_dll install_mo)
95
install(TARGETS sumo-gui RUNTIME DESTINATION bin COMPONENT runtime)
96
endif ()
97
98
add_executable(netconvert netconvert_main.cpp)
99
set_target_properties(netconvert PROPERTIES OUTPUT_NAME netconvert${BINARY_SUFFIX})
100
set_target_properties(netconvert PROPERTIES OUTPUT_NAME_DEBUG netconvert${BINARY_SUFFIX}D)
101
target_link_libraries(netconvert ${netconvertlibs})
102
add_dependencies(netconvert generate-version-h install_dll)
103
104
add_executable(od2trips od2trips_main.cpp)
105
set_target_properties(od2trips PROPERTIES OUTPUT_NAME od2trips${BINARY_SUFFIX})
106
set_target_properties(od2trips PROPERTIES OUTPUT_NAME_DEBUG od2trips${BINARY_SUFFIX}D)
107
target_link_libraries(od2trips od router ${commonvehiclelibs} ${TCMALLOC_LIBRARY})
108
add_dependencies(od2trips generate-version-h install_dll)
109
110
install(TARGETS sumo netconvert od2trips RUNTIME DESTINATION bin COMPONENT runtime)
111
install(DIRECTORY libsumo DESTINATION include COMPONENT runtime
112
FILES_MATCHING PATTERN "*.h"
113
PATTERN "*Helper.h" EXCLUDE
114
PATTERN "Subscription.h" EXCLUDE)
115
116
configure_file(config.h.cmake config.h)
117
118
# obtain version from git folder
119
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../.git/index")
120
set(VERSION_DEP "${CMAKE_CURRENT_SOURCE_DIR}/../.git/index")
121
endif()
122
123
# define version.h dependency
124
add_custom_command(OUTPUT version.h
125
COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tools/build_config/version.py ${CMAKE_CURRENT_BINARY_DIR}
126
DEPENDS ${VERSION_DEP}
127
)
128
add_custom_target(generate-version-h DEPENDS version.h)
129
set_property(TARGET generate-version-h PROPERTY FOLDER "CMake")
130
131