Windows Visual Studio Clang Support

Incorporated code changes that should be transparent to Linux-based builds to support building ns-3 libraries in Visual Studio using the C++ Clang tools for Windows on Visual Studio 2022.

Updates of note: CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS option added to CMakeLists.txt: exports all symbols removing the need for explicit __declspec(dllexport) calls and only requiring __declspec(dllimport) calls for certain static data members in classes.

NS3_INT64X64 default to DOUBLE for MSVC: MSVC doesn't appear to have INT128 support that cross compiles directly with Linux-based builds. Working around for now by switching to DOUBLE only for MSVC builds.

New ns-*-export.h files: Only actually needed for __declspec(dllimport) on static data members. #include <unistd.h> in config-store.cc: Not used even in Linux-based builds.

nstime.h g_markingTimes initialization: Since restriction prior to C++0x not a constraint anymore, removed current static initialization design process for direct inline initialization. DLL under baseline initialization reports an access violation attempting to access the initialized memory.

Merge request reports

Loading
Loading