add_subdirectory(common)
add_subdirectory(distribution)
add_subdirectory(emissions)
add_subdirectory(geom)
add_subdirectory(handlers)
add_subdirectory(importio)
add_subdirectory(iodevices)
add_subdirectory(options)
add_subdirectory(shapes)
add_subdirectory(router)
add_subdirectory(traci)
add_subdirectory(traction_wire)
add_subdirectory(vehicle)
add_subdirectory(xml)
if (FOX_FOUND)
    add_subdirectory(foxtools)
    add_subdirectory(gui)
endif ()

if (SUMO_UTILS)
    set(utillibs utils_distribution utils_handlers utils_shapes utils_options utils_xml
        utils_geom utils_common utils_importio utils_iodevices foreign_tcpip ${PROJ_LIBRARY})
    file(WRITE empty.cpp "")
    add_library(sumoutils SHARED empty.cpp)
    install(TARGETS sumoutils DESTINATION lib)
    if (CLANG_COMPILER AND WIN32)
        target_link_libraries(sumoutils -Wl,--whole-archive ${utillibs} -Wl,--no-whole-archive)
    elseif (MSVC)
        target_link_libraries(sumoutils ${utillibs} ws2_32)
    elseif (APPLE)
        target_link_libraries(sumoutils ${utillibs})
    else ()
        target_link_libraries(sumoutils -Wl,--whole-archive ${utillibs} -Wl,--no-whole-archive)
    endif()
endif()
