set(netconvertlibs netwrite netimport netbuild foreign_eulerspiral ${GDAL_LIBRARY} netimport_vissim netimport_vissim_typeloader netimport_vissim_tempstructs ${commonlibs} ${TCMALLOC_LIBRARY}) set(sumolibs traciserver netload microsim_cfmodels microsim_engine microsim_lcmodels microsim_devices microsim_trigger microsim_output microsim_transportables microsim_actions microsim_traffic_lights microsim mesosim ${commonvehiclelibs} ${GEOS_LIBRARY} ${BOOST_LIBRARIES}) if (OPENSCENEGRAPH_FOUND) set(osgviewlib osgview) endif () set(sumoguilibs guinetload guisim gui gui_dialogs utils_gui_windows utils_gui_globjects utils_gui_div utils_gui_settings utils_gui_images utils_gui_cursors utils_gui_shortcuts utils_tests utils_gui_tracker utils_foxtools ${osgviewlib} ${sumolibs} mesogui ${GDAL_LIBRARY} ${FFMPEG_LIBRARIES} ${OPENSCENEGRAPH_LIBRARIES} ${GL2PS_LIBRARIES}) if (MSVC) set(sumoguilibs ${sumoguilibs} opengl32 glu32) endif () if ((GNU_COMPILER OR CLANG_COMPILER) AND NOT APPLE) set(sumolibs -Wl,--whole-archive ${sumolibs} -Wl,--no-whole-archive) set(sumoguilibs -Wl,--whole-archive ${sumoguilibs} -Wl,--no-whole-archive) endif() add_subdirectory(activitygen) add_subdirectory(dfrouter) add_subdirectory(duarouter) if (ENABLE_FMI) add_subdirectory(fmi) endif () add_subdirectory(foreign) add_subdirectory(jtrrouter) add_subdirectory(libsumo) add_subdirectory(libtraci) add_subdirectory(marouter) add_subdirectory(mesosim) add_subdirectory(microsim) add_subdirectory(netbuild) add_subdirectory(netgen) add_subdirectory(netimport) add_subdirectory(netload) add_subdirectory(netwrite) add_subdirectory(od) if (OPENSCENEGRAPH_FOUND) add_subdirectory(osgview) endif () add_subdirectory(polyconvert) add_subdirectory(router) add_subdirectory(tools) add_subdirectory(traci-server) add_subdirectory(traci_testclient) add_subdirectory(utils) if (FOX_FOUND) add_subdirectory(gui) add_subdirectory(guinetload) add_subdirectory(guisim) add_subdirectory(mesogui) if (ENABLE_NETEDIT) add_subdirectory(netedit) endif () endif () add_executable(sumo sumo_main.cpp) set_target_properties(sumo PROPERTIES OUTPUT_NAME sumo${BINARY_SUFFIX}) set_target_properties(sumo PROPERTIES OUTPUT_NAME_DEBUG sumo${BINARY_SUFFIX}D) target_link_libraries(sumo ${sumolibs} libsumostatic ${TCMALLOC_LIBRARY}) add_dependencies(sumo generate-version-h install_dll) if (FOX_FOUND) add_executable(sumo-gui guisim_main.cpp sumo-gui.rc) set_target_properties(sumo-gui PROPERTIES OUTPUT_NAME sumo-gui${BINARY_SUFFIX}) set_target_properties(sumo-gui PROPERTIES OUTPUT_NAME_DEBUG sumo-gui${BINARY_SUFFIX}D) target_link_libraries(sumo-gui ${sumoguilibs} libsumoguistatic ${TCMALLOC_LIBRARY}) if (MSVC) if (CONSOLE_RELEASE) set_target_properties(sumo-gui PROPERTIES LINK_FLAGS_RELEASE "/ENTRY:mainCRTStartup") else () set_target_properties(sumo-gui PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") endif() if (FFMPEG_FOUND) set_target_properties(sumo-gui PROPERTIES LINK_FLAGS "/SAFESEH:NO") endif () if (CMAKE_VERSION VERSION_LESS "3.16.0") message(STATUS "DPI awareness for sumo-gui will be disabled. Please consider using CMake version >= 3.16 to enable it") else () set_target_properties(sumo-gui PROPERTIES VS_DPI_AWARE "ON") endif () endif () add_dependencies(sumo-gui generate-version-h install_dll install_mo) install(TARGETS sumo-gui RUNTIME DESTINATION bin COMPONENT runtime) endif () add_executable(netconvert netconvert_main.cpp) set_target_properties(netconvert PROPERTIES OUTPUT_NAME netconvert${BINARY_SUFFIX}) set_target_properties(netconvert PROPERTIES OUTPUT_NAME_DEBUG netconvert${BINARY_SUFFIX}D) target_link_libraries(netconvert ${netconvertlibs}) add_dependencies(netconvert generate-version-h install_dll) add_executable(od2trips od2trips_main.cpp) set_target_properties(od2trips PROPERTIES OUTPUT_NAME od2trips${BINARY_SUFFIX}) set_target_properties(od2trips PROPERTIES OUTPUT_NAME_DEBUG od2trips${BINARY_SUFFIX}D) target_link_libraries(od2trips od router ${commonvehiclelibs} ${TCMALLOC_LIBRARY}) add_dependencies(od2trips generate-version-h install_dll) install(TARGETS sumo netconvert od2trips RUNTIME DESTINATION bin COMPONENT runtime) install(DIRECTORY libsumo DESTINATION include COMPONENT runtime FILES_MATCHING PATTERN "*.h" PATTERN "*Helper.h" EXCLUDE PATTERN "Subscription.h" EXCLUDE) configure_file(config.h.cmake config.h) # obtain version from git folder if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../.git/index") set(VERSION_DEP "${CMAKE_CURRENT_SOURCE_DIR}/../.git/index") endif() # define version.h dependency add_custom_command(OUTPUT version.h COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tools/build_config/version.py ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${VERSION_DEP} ) add_custom_target(generate-version-h DEPENDS version.h) set_property(TARGET generate-version-h PROPERTY FOLDER "CMake")