aboutsummaryrefslogtreecommitdiffstats
path: root/metis/ccnx/forwarder/metis/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'metis/ccnx/forwarder/metis/CMakeLists.txt')
-rw-r--r--metis/ccnx/forwarder/metis/CMakeLists.txt360
1 files changed, 360 insertions, 0 deletions
diff --git a/metis/ccnx/forwarder/metis/CMakeLists.txt b/metis/ccnx/forwarder/metis/CMakeLists.txt
new file mode 100644
index 00000000..3e73c456
--- /dev/null
+++ b/metis/ccnx/forwarder/metis/CMakeLists.txt
@@ -0,0 +1,360 @@
+# Define a few configuration variables that we want accessible in the software
+
+configure_file(config.h.in config.h @ONLY)
+
+set(METIS_BASE_HEADERS
+ metis_About.h
+ )
+
+set(METIS_BASE_SOURCE
+ metis_About.c
+ )
+
+source_group(core FILES ${METIS_BASE_HEADERS} ${METIS_BASE_SOURCE})
+
+set(METIS_CONFIG_HEADERS
+ config/metis_CommandOps.h
+ config/metis_CommandParser.h
+ config/metis_Configuration.h
+ config/metis_CommandLineInterface.h
+ config/metis_CommandReturn.h
+ config/metis_SymbolicNameTable.h
+ config/metis_ControlState.h
+ config/metisControl_Root.h
+ config/metisControl_AddConnection.h
+ config/metisControl_Add.h
+ config/metis_ConfigurationFile.h
+ config/metis_ConfigurationListeners.h
+ config/metisControl_AddRoute.h
+ config/metisControl_AddListener.h
+ config/metisControl_ListConnections.h
+ config/metisControl_List.h
+ config/metisControl_ListInterfaces.h
+ config/metisControl_ListRoutes.h
+ config/metisControl_Quit.h
+ config/metisControl_Remove.h
+ config/metisControl_RemoveConnection.h
+ config/metisControl_RemoveRoute.h
+ config/metisControl_Set.h
+ config/metisControl_Unset.h
+ config/metisControl_SetDebug.h
+ config/metisControl_UnsetDebug.h
+ config/metis_WebInterface.h
+ config/metisControl_CacheServe.h
+ config/metisControl_CacheStore.h
+ config/metisControl_CacheClear.h
+ config/metisControl_Cache.h
+ config/metisControl_SetStrategy.h
+ config/metisControl_SetWldr.h
+ )
+
+source_group(config FILES ${METIS_CONFIG_HEADERS})
+
+set(METIS_CONFIG_SOURCE
+ config/metis_CommandLineInterface.c
+ config/metis_CommandOps.c
+ config/metis_CommandParser.c
+ config/metis_Configuration.c
+ config/metis_ConfigurationFile.c
+ config/metis_ConfigurationListeners.c
+ config/metis_ControlState.c
+ config/metis_SymbolicNameTable.c
+ config/metisControl_Add.c
+ config/metisControl_AddConnection.c
+ config/metisControl_AddRoute.c
+ config/metisControl_AddListener.c
+ config/metisControl_List.c
+ config/metisControl_ListConnections.c
+ config/metisControl_ListInterfaces.c
+ config/metisControl_ListRoutes.c
+ config/metisControl_Quit.c
+ config/metisControl_Remove.c
+ config/metisControl_RemoveConnection.c
+ config/metisControl_RemoveRoute.c
+ config/metisControl_Root.c
+ config/metisControl_Set.c
+ config/metisControl_SetDebug.c
+ config/metisControl_Unset.c
+ config/metisControl_UnsetDebug.c
+ config/metisControl_CacheServe.c
+ config/metisControl_CacheStore.c
+ config/metisControl_CacheClear.c
+ config/metisControl_Cache.c
+ config/metisControl_SetStrategy.c
+ config/metisControl_SetWldr.c
+ )
+
+source_group(config FILES ${METIS_CONFIG_SOURCE})
+
+set(METIS_CONTENT_STORE_HEADERS
+ content_store/metis_ContentStoreEntry.h
+ content_store/metis_ContentStoreInterface.h
+ content_store/metis_LRUContentStore.h
+ content_store/metis_TimeOrderedList.h
+ content_store/metis_LruList.h
+ )
+
+source_group(content_store FILES ${METIS_CONTENT_STORE_HEADERS})
+
+set(METIS_CONTENT_STORE_SOURCE
+ content_store/metis_ContentStoreInterface.c
+ content_store/metis_LRUContentStore.c
+ content_store/metis_LruList.c
+ content_store/metis_TimeOrderedList.c
+ content_store/metis_ContentStoreEntry.c
+ )
+
+source_group(content_store FILES ${METIS_CONTENT_STORE_SOURCE})
+
+set(METIS_CORE_HEADERS
+ core/metis_ConnectionManager.h
+ core/metis_Ticks.h
+ core/metis_ConnectionList.h
+ core/metis_ConnectionTable.h
+ core/metis_Connection.h
+ core/metis_Forwarder.h
+ core/metis_Logger.h
+ core/metis_Dispatcher.h
+ core/metis_Message.h
+ core/metis_MessagePacketType.h
+ core/metis_NumberSet.h
+ core/metis_StreamBuffer.h
+ core/metis_ThreadedForwarder.h
+ core/metis_System.h
+ core/metis_Wldr.h
+ )
+
+source_group(core FILES ${METIS_CORE_HEADERS})
+
+set(METIS_CORE_SOURCE
+ core/metis_Connection.c
+ core/metis_ConnectionList.c
+ core/metis_ConnectionManager.c
+ core/metis_ConnectionTable.c
+ core/metis_Dispatcher.c
+ core/metis_Forwarder.c
+ core/metis_Logger.c
+ core/metis_Message.c
+ core/metis_NumberSet.c
+ core/metis_StreamBuffer.c
+ core/metis_ThreadedForwarder.c
+ core/metis_Wldr.c
+ )
+
+source_group(core FILES ${METIS_CORE_SOURCE})
+
+set(METIS_IO_HEADERS
+ io/metis_HopByHopFragmenter.h
+ io/metis_EtherConnection.h
+ io/metis_TcpTunnel.h
+ io/metis_AddressPair.h
+ io/metis_IoOperations.h
+ io/metis_Listener.h
+ io/metis_ListenerSet.h
+ io/metis_TcpListener.h
+ io/metis_UdpTunnel.h
+ io/metis_UdpConnection.h
+ io/metis_UdpListener.h
+ io/metis_EtherListener.h
+ io/metis_GenericEther.h
+ io/metis_LocalListener.h
+ io/metis_StreamConnection.h
+ io/metis_IPMulticastListener.h
+ io/metis_Ethernet.h
+ )
+
+source_group(io FILES ${METIS_IO_HEADERS})
+
+set(METIS_IO_SOURCE
+ io/metis_AddressPair.c
+ io/metis_EtherConnection.c
+ io/metis_EtherListener.c
+ io/metis_HopByHopFragmenter.c
+ io/metis_IoOperations.c
+ io/metis_IPMulticastListener.c
+ io/metis_ListenerSet.c
+ io/metis_LocalListener.c
+ io/metis_StreamConnection.c
+ io/metis_TcpListener.c
+ io/metis_TcpTunnel.c
+ io/metis_UdpConnection.c
+ io/metis_UdpListener.c
+ io/metis_UdpTunnel.c
+ )
+
+source_group(io FILES ${METIS_IO_SOURCE})
+
+set(METIS_MESSENGER_HEADERS
+ messenger/metis_MissiveDeque.h
+ messenger/metis_Missive.h
+ messenger/metis_MissiveType.h
+ messenger/metis_Messenger.h
+ messenger/metis_MessengerRecipient.h
+ )
+
+source_group(messenger FILES ${METIS_MESSENGER_HEADERS})
+
+set(METIS_MESSENGER_SOURCE
+ messenger/metis_Messenger.c
+ messenger/metis_MessengerRecipient.c
+ messenger/metis_Missive.c
+ messenger/metis_MissiveDeque.c
+ )
+
+source_group(messenger FILES ${METIS_MESSENGER_SOURCE})
+
+set(METIS_PROCESSOR_HEADERS
+ processor/metis_FibEntry.h
+ processor/metis_FibEntryList.h
+ processor/metis_MessageProcessor.h
+ processor/metis_Tap.h
+ processor/metis_HashTableFunction.h
+ processor/metis_PIT.h
+ processor/metis_FIB.h
+ processor/metis_PitEntry.h
+ processor/metis_MatchingRulesTable.h
+ processor/metis_PITVerdict.h
+ processor/metis_StandardPIT.h
+ )
+
+source_group(processor FILES ${METIS_PROCESSOR_HEADERS})
+
+set(METIS_PROCESSOR_SOURCE
+ processor/metis_HashTableFunction.c
+ processor/metis_FIB.c
+ processor/metis_FibEntry.c
+ processor/metis_FibEntryList.c
+ processor/metis_MatchingRulesTable.c
+ processor/metis_MessageProcessor.c
+ processor/metis_PIT.c
+ processor/metis_PitEntry.c
+ processor/metis_StandardPIT.c
+ )
+
+source_group(processor FILES ${METIS_PROCESSOR_SOURCE})
+
+set(METIS_STRATEGIES_HEADERS
+ strategies/metis_Strategy.h
+ strategies/metis_StrategyImpl.h
+ strategies/strategy_LoadBalancer.h
+ strategies/strategy_LoadBalancerWithPD.h
+ strategies/strategy_NexthopState.h
+ strategies/strategy_NexthopStateWithPD.h
+ strategies/strategy_Rnd.h
+ strategies/strategy_RndSegment.h
+ )
+
+source_group(strategies FILES ${METIS_STRATEGIES_HEADERS})
+
+set(METIS_STRATEGIES_SOURCE
+ strategies/metis_StrategyImpl.c
+ strategies/strategy_LoadBalancer.c
+ strategies/strategy_LoadBalancerWithPD.c
+ strategies/strategy_NexthopState.c
+ strategies/strategy_NexthopStateWithPD.c
+ strategies/strategy_Rnd.c
+ strategies/strategy_RndSegment.c
+ )
+
+source_group(strategies FILES ${METIS_STRATEGIES_SOURCE})
+
+set(METIS_TLV_HEADERS
+ tlv/metis_TlvOps.h
+ tlv/metis_Tlv.h
+ tlv/metis_TlvName.h
+ tlv/metis_TlvExtent.h
+ tlv/metis_TlvNameCodec.h
+ tlv/metis_TlvSchemaV0.h
+ tlv/metis_TlvSchemaV1.h
+ tlv/metis_TlvSkeleton.h
+ )
+
+source_group(tlv FILES ${METIS_TLV_HEADERS})
+
+set(METIS_TLV_SOURCE
+ tlv/metis_Tlv.c
+ tlv/metis_TlvExtent.c
+ tlv/metis_TlvName.c
+ tlv/metis_TlvSchemaV0.c
+ tlv/metis_TlvSchemaV1.c
+ tlv/metis_TlvSkeleton.c
+ tlv/metis_TlvNameCodec.c
+ )
+
+source_group(tlv FILES ${METIS_TLV_SOURCE})
+
+if(${CMAKE_SYSTEM_NAME} STREQUAL "Android")
+ set(METIS_PLATFORM_MODULES
+ platforms/android/metis_GenericEther.c
+ platforms/android/metis_System.c
+ platforms/android/ifaddrs.c
+ )
+ source_group(platforms FILES ${METIS_PLATFORM_MODULES})
+else()
+
+if ( APPLE )
+ set(METIS_PLATFORM_MODULES
+ platforms/darwin/metis_GenericEther.c
+ platforms/darwin/metis_System.c
+ )
+ source_group(platforms FILES ${METIS_PLATFORM_MODULES})
+endif()
+
+
+if( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" )
+ set(METIS_PLATFORM_MODULES
+ platforms/linux/metis_GenericEther.c
+ platforms/linux/metis_System.c
+ )
+endif()
+endif()
+
+set(METIS_SOURCE_FILES
+ metis_About.c
+ ${METIS_CONFIG_SOURCE}
+ ${METIS_CORE_SOURCE}
+ ${METIS_TLV_SOURCE}
+ ${METIS_CONTENT_STORE_SOURCE}
+ ${METIS_IO_SOURCE}
+ ${METIS_MESSENGER_SOURCE}
+ ${METIS_PLATFORM_MODULES}
+ ${METIS_PROCESSOR_SOURCE}
+ ${METIS_STRATEGIES_SOURCE}
+ )
+
+add_library(metis STATIC ${METIS_SOURCE_FILES})
+
+set(metis_libraries
+ metis
+ )
+
+foreach(lib ${metis_libraries})
+ install(TARGETS ${lib} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
+ set_property(TARGET ${lib} PROPERTY C_STANDARD 99)
+endforeach()
+
+if(NOT ANDROID_API)
+ add_subdirectory(command-line)
+else ()
+ install(FILES ${METIS_BASE_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis)
+ install(FILES ${METIS_CONFIG_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis/config)
+ install(FILES ${METIS_CONTENT_STORE_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis/content_store)
+ install(FILES ${METIS_CORE_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis/core)
+ install(FILES ${METIS_IO_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis/io)
+ install(FILES ${METIS_MESSENGER_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis/messenger)
+ install(FILES ${METIS_PROCESSOR_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis/processor)
+ install(FILES ${METIS_STRATEGIES_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis/strategies)
+ install(FILES ${METIS_TLV_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ccnx/forwarder/metis/tlv)
+ install(FILES ${CMAKE_INSTALL_PREFIX}/../build/Metis/ccnx/forwarder/metis/config.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
+
+endif()
+
+add_subdirectory(test)
+add_subdirectory(tlv/test)
+add_subdirectory(strategies/test)
+add_subdirectory(processor/test)
+add_subdirectory(messenger/test)
+add_subdirectory(io/test)
+add_subdirectory(core/test)
+add_subdirectory(content_store/test)
+add_subdirectory(config/test)