build: Simplify inclusion of netanim

This commit is contained in:
André Apitzsch
2024-10-22 13:29:44 +02:00
committed by Gabriel Ferreira
parent 03e86f3f7d
commit df54650281
2 changed files with 7 additions and 197 deletions

View File

@@ -1,185 +0,0 @@
# Copyright (c) 2017-2021 Universidade de Brasília
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Author: Gabriel Ferreira <gabrielcarvfer@gmail.com>
find_package(Qt4 COMPONENTS QtGui QUIET)
find_package(Qt5 COMPONENTS Core Widgets PrintSupport Gui QUIET)
add_definitions(-Wno-error=misleading-indentation)
if((NOT ${Qt4_FOUND}) AND (NOT ${Qt5_FOUND}))
message(FATAL_ERROR "You need Qt installed to build NetAnim")
endif()
# Qt 4 requires these inclusions
if(NOT ${Qt5_found})
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
include_directories(${QT_INCLUDES})
endif()
# Used by qt
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(source_files
animatormode.cpp
animatorscene.cpp
animatorview.cpp
animlink.cpp
animnode.cpp
animpacket.cpp
animpropertybrowser.cpp
animresource.cpp
animxmlparser.cpp
countertablesscene.cpp
flowmonstatsscene.cpp
flowmonxmlparser.cpp
graphpacket.cpp
interfacestatsscene.cpp
log.cpp
logqt.cpp
main.cpp
mode.cpp
netanim.cpp
packetsmode.cpp
packetsscene.cpp
packetsview.cpp
qcustomplot.cpp
qtpropertybrowser/src/fileedit.cpp
qtpropertybrowser/src/fileeditfactory.cpp
qtpropertybrowser/src/filepathmanager.cpp
qtpropertybrowser/src/qtbuttonpropertybrowser.cpp
qtpropertybrowser/src/qteditorfactory.cpp
qtpropertybrowser/src/qtgroupboxpropertybrowser.cpp
qtpropertybrowser/src/qtpropertybrowser.cpp
qtpropertybrowser/src/qtpropertybrowserutils.cpp
qtpropertybrowser/src/qtpropertymanager.cpp
qtpropertybrowser/src/qttreepropertybrowser.cpp
qtpropertybrowser/src/qtvariantproperty.cpp
resizeableitem.cpp
routingstatsscene.cpp
routingxmlparser.cpp
statsmode.cpp
statsview.cpp
table.cpp
textbubble.cpp
)
set(header_files
abort.h
animatorconstants.h
animatormode.h
animatorscene.h
animatorview.h
animevent.h
animlink.h
animnode.h
animpacket.h
animpropertybrowser.h
animresource.h
animxmlparser.h
common.h
countertablesscene.h
flowmonstatsscene.h
flowmonxmlparser.h
graphpacket.h
interfacestatsscene.h
logqt.h
mode.h
netanim.h
packetsmode.h
packetsscene.h
packetsview.h
qcustomplot.h
qtpropertybrowser/src/QtAbstractEditorFactoryBase
qtpropertybrowser/src/QtAbstractPropertyBrowser
qtpropertybrowser/src/QtAbstractPropertyManager
qtpropertybrowser/src/QtBoolPropertyManager
qtpropertybrowser/src/QtBrowserItem
qtpropertybrowser/src/QtButtonPropertyBrowser
qtpropertybrowser/src/QtCharEditorFactory
qtpropertybrowser/src/QtCharPropertyManager
qtpropertybrowser/src/QtCheckBoxFactory
qtpropertybrowser/src/QtColorEditorFactory
qtpropertybrowser/src/QtColorPropertyManager
qtpropertybrowser/src/QtCursorEditorFactory
qtpropertybrowser/src/QtCursorPropertyManager
qtpropertybrowser/src/QtDateEditFactory
qtpropertybrowser/src/QtDatePropertyManager
qtpropertybrowser/src/QtDateTimeEditFactory
qtpropertybrowser/src/QtDateTimePropertyManager
qtpropertybrowser/src/QtDoublePropertyManager
qtpropertybrowser/src/QtDoubleSpinBoxFactory
qtpropertybrowser/src/QtEnumEditorFactory
qtpropertybrowser/src/QtEnumPropertyManager
qtpropertybrowser/src/QtFlagPropertyManager
qtpropertybrowser/src/QtFontEditorFactory
qtpropertybrowser/src/QtFontPropertyManager
qtpropertybrowser/src/QtGroupBoxPropertyBrowser
qtpropertybrowser/src/QtGroupPropertyManager
qtpropertybrowser/src/QtIntPropertyManager
qtpropertybrowser/src/QtKeySequenceEditorFactory
qtpropertybrowser/src/QtKeySequencePropertyManager
qtpropertybrowser/src/QtLineEditFactory
qtpropertybrowser/src/QtLocalePropertyManager
qtpropertybrowser/src/QtPointFPropertyManager
qtpropertybrowser/src/QtPointPropertyManager
qtpropertybrowser/src/QtProperty
qtpropertybrowser/src/QtRectFPropertyManager
qtpropertybrowser/src/QtRectPropertyManager
qtpropertybrowser/src/QtScrollBarFactory
qtpropertybrowser/src/QtSizeFPropertyManager
qtpropertybrowser/src/QtSizePolicyPropertyManager
qtpropertybrowser/src/QtSizePropertyManager
qtpropertybrowser/src/QtSliderFactory
qtpropertybrowser/src/QtSpinBoxFactory
qtpropertybrowser/src/QtStringPropertyManager
qtpropertybrowser/src/QtTimeEditFactory
qtpropertybrowser/src/QtTimePropertyManager
qtpropertybrowser/src/QtTreePropertyBrowser
qtpropertybrowser/src/QtVariantEditorFactory
qtpropertybrowser/src/QtVariantProperty
qtpropertybrowser/src/QtVariantPropertyManager
qtpropertybrowser/src/fileedit.h
qtpropertybrowser/src/fileeditfactory.h
qtpropertybrowser/src/filepathmanager.h
qtpropertybrowser/src/qtbuttonpropertybrowser.h
qtpropertybrowser/src/qteditorfactory.h
qtpropertybrowser/src/qtgroupboxpropertybrowser.h
qtpropertybrowser/src/qtpropertybrowser.h
qtpropertybrowser/src/qtpropertybrowserutils_p.h
qtpropertybrowser/src/qtpropertymanager.h
qtpropertybrowser/src/qttreepropertybrowser.h
qtpropertybrowser/src/qtvariantproperty.h
resizeableitem.h
routingstatsscene.h
routingxmlparser.h
statisticsconstants.h
statsmode.h
statsview.h
table.h
textbubble.h
timevalue.h
)
set(resource_files resources.qrc qtpropertybrowser/src/qtpropertybrowser.qrc)
add_executable(netanim_visualizer ${source_files} ${resource_files})
if(Qt4_FOUND)
target_link_libraries(netanim_visualizer PUBLIC ${libcore} Qt4::QtGui)
else()
target_link_libraries(
netanim_visualizer PUBLIC ${libcore} Qt5::Widgets Qt5::Core
Qt5::PrintSupport Qt5::Gui
)
endif()
target_include_directories(netanim_visualizer PUBLIC qtpropertybrowser/src)
set_runtime_outputdirectory(
netanim_visualizer ${CMAKE_OUTPUT_DIRECTORY}/bin/ ""
)

View File

@@ -1316,19 +1316,14 @@ macro(process_options)
# Netanim depends on ns-3 core, so we built it later
if(${NS3_NETANIM})
include(FetchContent)
FetchContent_Declare(
netanim GIT_REPOSITORY https://gitlab.com/nsnam/netanim.git
GIT_TAG netanim-3.109
include(ExternalProject)
ExternalProject_Add(
netanim_visualizer
GIT_REPOSITORY https://gitlab.com/nsnam/netanim.git
GIT_TAG netanim-3.110
BUILD_IN_SOURCE TRUE
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_OUTPUT_DIRECTORY}
)
FetchContent_Populate(netanim)
file(COPY build-support/3rd-party/netanim-cmakelists.cmake
DESTINATION ${netanim_SOURCE_DIR}
)
file(RENAME ${netanim_SOURCE_DIR}/netanim-cmakelists.cmake
${netanim_SOURCE_DIR}/CMakeLists.txt
)
add_subdirectory(${netanim_SOURCE_DIR} ${netanim_BINARY_DIR})
endif()
if(${NS3_FETCH_OPTIONAL_COMPONENTS})