From f6b700ea97bbae82b8c8426acabe3d389e17d652 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sun, 25 Sep 2016 17:23:39 -0700 Subject: [PATCH] Move common utility classes to wpiutil library. (#79) This is a breaking change to dependencies that use the static ntcore library. Unless the wpiutil library is also linked, linker errors will result. This does not affect the shared ntcore library. --- CMakeLists.txt | 19 ++++++++++++++++--- {include => wpiutil/include}/llvm/AlignOf.h | 0 {include => wpiutil/include}/llvm/ArrayRef.h | 0 {include => wpiutil/include}/llvm/Compiler.h | 0 .../include}/llvm/ConvertUTF.h | 0 {include => wpiutil/include}/llvm/DenseMap.h | 0 .../include}/llvm/DenseMapInfo.h | 0 .../include}/llvm/EpochTracker.h | 0 .../include}/llvm/MathExtras.h | 0 {include => wpiutil/include}/llvm/None.h | 0 .../include}/llvm/PointerLikeTypeTraits.h | 0 .../include}/llvm/SmallPtrSet.h | 0 {include => wpiutil/include}/llvm/SmallSet.h | 0 .../include}/llvm/SmallString.h | 0 .../include}/llvm/SmallVector.h | 0 .../include}/llvm/StringExtras.h | 0 {include => wpiutil/include}/llvm/StringMap.h | 0 {include => wpiutil/include}/llvm/StringRef.h | 0 .../include}/llvm/iterator_range.h | 0 .../include}/llvm/type_traits.h | 0 {include => wpiutil/include}/support/Base64.h | 0 .../include}/support/ConcurrentQueue.h | 0 {include => wpiutil/include}/support/Logger.h | 0 .../include}/support/SafeThread.h | 0 .../include}/support/atomic_static.h | 0 {include => wpiutil/include}/support/leb128.h | 0 .../include}/support/raw_istream.h | 0 .../include}/support/raw_socket_istream.h | 0 .../include}/support/timestamp.h | 0 .../include}/tcpsockets/NetworkAcceptor.h | 0 .../include}/tcpsockets/NetworkStream.h | 0 .../include}/tcpsockets/SocketError.h | 0 .../include}/tcpsockets/TCPAcceptor.h | 0 .../include}/tcpsockets/TCPConnector.h | 0 .../include}/tcpsockets/TCPStream.h | 0 wpiutil/src/dummy.cpp | 3 --- {src => wpiutil/src}/llvm/ConvertUTF.cpp | 0 .../src}/llvm/ConvertUTFWrapper.cpp | 0 {src => wpiutil/src}/llvm/SmallPtrSet.cpp | 0 {src => wpiutil/src}/llvm/SmallVector.cpp | 0 {src => wpiutil/src}/llvm/StringExtras.cpp | 0 {src => wpiutil/src}/llvm/StringMap.cpp | 0 {src => wpiutil/src}/llvm/StringRef.cpp | 0 {src => wpiutil/src}/support/Base64.cpp | 0 {src => wpiutil/src}/support/SafeThread.cpp | 0 {src => wpiutil/src}/support/leb128.cpp | 0 {src => wpiutil/src}/support/raw_istream.cpp | 0 .../src}/support/raw_socket_istream.cpp | 0 {src => wpiutil/src}/support/timestamp.cpp | 0 .../src}/tcpsockets/SocketError.cpp | 0 .../src}/tcpsockets/TCPAcceptor.cpp | 0 .../src}/tcpsockets/TCPConnector.cpp | 0 {src => wpiutil/src}/tcpsockets/TCPStream.cpp | 0 .../unit => wpiutil/unittest}/Base64Test.cpp | 0 .../unit => wpiutil/unittest}/leb128Test.cpp | 0 55 files changed, 16 insertions(+), 6 deletions(-) rename {include => wpiutil/include}/llvm/AlignOf.h (100%) rename {include => wpiutil/include}/llvm/ArrayRef.h (100%) rename {include => wpiutil/include}/llvm/Compiler.h (100%) rename {include => wpiutil/include}/llvm/ConvertUTF.h (100%) rename {include => wpiutil/include}/llvm/DenseMap.h (100%) rename {include => wpiutil/include}/llvm/DenseMapInfo.h (100%) rename {include => wpiutil/include}/llvm/EpochTracker.h (100%) rename {include => wpiutil/include}/llvm/MathExtras.h (100%) rename {include => wpiutil/include}/llvm/None.h (100%) rename {include => wpiutil/include}/llvm/PointerLikeTypeTraits.h (100%) rename {include => wpiutil/include}/llvm/SmallPtrSet.h (100%) rename {include => wpiutil/include}/llvm/SmallSet.h (100%) rename {include => wpiutil/include}/llvm/SmallString.h (100%) rename {include => wpiutil/include}/llvm/SmallVector.h (100%) rename {include => wpiutil/include}/llvm/StringExtras.h (100%) rename {include => wpiutil/include}/llvm/StringMap.h (100%) rename {include => wpiutil/include}/llvm/StringRef.h (100%) rename {include => wpiutil/include}/llvm/iterator_range.h (100%) rename {include => wpiutil/include}/llvm/type_traits.h (100%) rename {include => wpiutil/include}/support/Base64.h (100%) rename {include => wpiutil/include}/support/ConcurrentQueue.h (100%) rename {include => wpiutil/include}/support/Logger.h (100%) rename {include => wpiutil/include}/support/SafeThread.h (100%) rename {include => wpiutil/include}/support/atomic_static.h (100%) rename {include => wpiutil/include}/support/leb128.h (100%) rename {include => wpiutil/include}/support/raw_istream.h (100%) rename {include => wpiutil/include}/support/raw_socket_istream.h (100%) rename {include => wpiutil/include}/support/timestamp.h (100%) rename {include => wpiutil/include}/tcpsockets/NetworkAcceptor.h (100%) rename {include => wpiutil/include}/tcpsockets/NetworkStream.h (100%) rename {include => wpiutil/include}/tcpsockets/SocketError.h (100%) rename {include => wpiutil/include}/tcpsockets/TCPAcceptor.h (100%) rename {include => wpiutil/include}/tcpsockets/TCPConnector.h (100%) rename {include => wpiutil/include}/tcpsockets/TCPStream.h (100%) delete mode 100644 wpiutil/src/dummy.cpp rename {src => wpiutil/src}/llvm/ConvertUTF.cpp (100%) rename {src => wpiutil/src}/llvm/ConvertUTFWrapper.cpp (100%) rename {src => wpiutil/src}/llvm/SmallPtrSet.cpp (100%) rename {src => wpiutil/src}/llvm/SmallVector.cpp (100%) rename {src => wpiutil/src}/llvm/StringExtras.cpp (100%) rename {src => wpiutil/src}/llvm/StringMap.cpp (100%) rename {src => wpiutil/src}/llvm/StringRef.cpp (100%) rename {src => wpiutil/src}/support/Base64.cpp (100%) rename {src => wpiutil/src}/support/SafeThread.cpp (100%) rename {src => wpiutil/src}/support/leb128.cpp (100%) rename {src => wpiutil/src}/support/raw_istream.cpp (100%) rename {src => wpiutil/src}/support/raw_socket_istream.cpp (100%) rename {src => wpiutil/src}/support/timestamp.cpp (100%) rename {src => wpiutil/src}/tcpsockets/SocketError.cpp (100%) rename {src => wpiutil/src}/tcpsockets/TCPAcceptor.cpp (100%) rename {src => wpiutil/src}/tcpsockets/TCPConnector.cpp (100%) rename {src => wpiutil/src}/tcpsockets/TCPStream.cpp (100%) rename {test/unit => wpiutil/unittest}/Base64Test.cpp (100%) rename {test/unit => wpiutil/unittest}/leb128Test.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 669c7307b2..7ccb6fbe16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(ntcore) if (MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DNOMINMAX /D_SCL_SECURE_NO_WARNINGS /D_WINSOCK_DEPRECATED_NO_WARNINGS") else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -Wformat=2 -Wall -Wextra -Werror -pedantic -Wno-unused-parameter") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++1y -Wformat=2 -Wall -Wextra -Werror -pedantic -Wno-unused-parameter") endif() # This must be a macro(), as inside a function string() can only @@ -33,7 +33,7 @@ endmacro() fix_default_compiler_settings_() file(GLOB_RECURSE SRC_FILES src/*.cpp) -include_directories(include src) +include_directories(include src wpiutil/include) # Java bindings if (NOT WITHOUT_JAVA) @@ -69,14 +69,19 @@ if (NOT WITHOUT_JAVA) endif() if (WIN32) + if (NOT WITHOUT_JAVA) + add_library(ntcore SHARED ${SRC_FILES} ntcore-jni.def) + else() add_library(ntcore SHARED ${SRC_FILES} ntcore.def) + endif() else() add_library(ntcore SHARED ${SRC_FILES}) endif() set_target_properties(ntcore PROPERTIES VERSION 1.0.0 SOVERSION 1) -#target_link_libraries(ntcore) +target_link_libraries(ntcore wpiutil) if (WIN32) add_library(ntcore_static STATIC ${SRC_FILES}) + target_link_libraries(ntcore_static wpiutil) target_link_libraries(ntcore ws2_32) target_link_libraries(ntcore_static ws2_32) endif() @@ -86,6 +91,14 @@ INSTALL(TARGETS ntcore ARCHIVE DESTINATION lib COMPONENT lib) INSTALL(DIRECTORY include DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT headers) +file(GLOB_RECURSE WPIUTIL_SRC_FILES wpiutil/src/*.cpp) +add_library(wpiutil STATIC ${WPIUTIL_SRC_FILES}) +INSTALL(TARGETS wpiutil + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib COMPONENT lib) +INSTALL(DIRECTORY wpiutil/include DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT headers) + # We need thread support find_package(Threads REQUIRED) diff --git a/include/llvm/AlignOf.h b/wpiutil/include/llvm/AlignOf.h similarity index 100% rename from include/llvm/AlignOf.h rename to wpiutil/include/llvm/AlignOf.h diff --git a/include/llvm/ArrayRef.h b/wpiutil/include/llvm/ArrayRef.h similarity index 100% rename from include/llvm/ArrayRef.h rename to wpiutil/include/llvm/ArrayRef.h diff --git a/include/llvm/Compiler.h b/wpiutil/include/llvm/Compiler.h similarity index 100% rename from include/llvm/Compiler.h rename to wpiutil/include/llvm/Compiler.h diff --git a/include/llvm/ConvertUTF.h b/wpiutil/include/llvm/ConvertUTF.h similarity index 100% rename from include/llvm/ConvertUTF.h rename to wpiutil/include/llvm/ConvertUTF.h diff --git a/include/llvm/DenseMap.h b/wpiutil/include/llvm/DenseMap.h similarity index 100% rename from include/llvm/DenseMap.h rename to wpiutil/include/llvm/DenseMap.h diff --git a/include/llvm/DenseMapInfo.h b/wpiutil/include/llvm/DenseMapInfo.h similarity index 100% rename from include/llvm/DenseMapInfo.h rename to wpiutil/include/llvm/DenseMapInfo.h diff --git a/include/llvm/EpochTracker.h b/wpiutil/include/llvm/EpochTracker.h similarity index 100% rename from include/llvm/EpochTracker.h rename to wpiutil/include/llvm/EpochTracker.h diff --git a/include/llvm/MathExtras.h b/wpiutil/include/llvm/MathExtras.h similarity index 100% rename from include/llvm/MathExtras.h rename to wpiutil/include/llvm/MathExtras.h diff --git a/include/llvm/None.h b/wpiutil/include/llvm/None.h similarity index 100% rename from include/llvm/None.h rename to wpiutil/include/llvm/None.h diff --git a/include/llvm/PointerLikeTypeTraits.h b/wpiutil/include/llvm/PointerLikeTypeTraits.h similarity index 100% rename from include/llvm/PointerLikeTypeTraits.h rename to wpiutil/include/llvm/PointerLikeTypeTraits.h diff --git a/include/llvm/SmallPtrSet.h b/wpiutil/include/llvm/SmallPtrSet.h similarity index 100% rename from include/llvm/SmallPtrSet.h rename to wpiutil/include/llvm/SmallPtrSet.h diff --git a/include/llvm/SmallSet.h b/wpiutil/include/llvm/SmallSet.h similarity index 100% rename from include/llvm/SmallSet.h rename to wpiutil/include/llvm/SmallSet.h diff --git a/include/llvm/SmallString.h b/wpiutil/include/llvm/SmallString.h similarity index 100% rename from include/llvm/SmallString.h rename to wpiutil/include/llvm/SmallString.h diff --git a/include/llvm/SmallVector.h b/wpiutil/include/llvm/SmallVector.h similarity index 100% rename from include/llvm/SmallVector.h rename to wpiutil/include/llvm/SmallVector.h diff --git a/include/llvm/StringExtras.h b/wpiutil/include/llvm/StringExtras.h similarity index 100% rename from include/llvm/StringExtras.h rename to wpiutil/include/llvm/StringExtras.h diff --git a/include/llvm/StringMap.h b/wpiutil/include/llvm/StringMap.h similarity index 100% rename from include/llvm/StringMap.h rename to wpiutil/include/llvm/StringMap.h diff --git a/include/llvm/StringRef.h b/wpiutil/include/llvm/StringRef.h similarity index 100% rename from include/llvm/StringRef.h rename to wpiutil/include/llvm/StringRef.h diff --git a/include/llvm/iterator_range.h b/wpiutil/include/llvm/iterator_range.h similarity index 100% rename from include/llvm/iterator_range.h rename to wpiutil/include/llvm/iterator_range.h diff --git a/include/llvm/type_traits.h b/wpiutil/include/llvm/type_traits.h similarity index 100% rename from include/llvm/type_traits.h rename to wpiutil/include/llvm/type_traits.h diff --git a/include/support/Base64.h b/wpiutil/include/support/Base64.h similarity index 100% rename from include/support/Base64.h rename to wpiutil/include/support/Base64.h diff --git a/include/support/ConcurrentQueue.h b/wpiutil/include/support/ConcurrentQueue.h similarity index 100% rename from include/support/ConcurrentQueue.h rename to wpiutil/include/support/ConcurrentQueue.h diff --git a/include/support/Logger.h b/wpiutil/include/support/Logger.h similarity index 100% rename from include/support/Logger.h rename to wpiutil/include/support/Logger.h diff --git a/include/support/SafeThread.h b/wpiutil/include/support/SafeThread.h similarity index 100% rename from include/support/SafeThread.h rename to wpiutil/include/support/SafeThread.h diff --git a/include/support/atomic_static.h b/wpiutil/include/support/atomic_static.h similarity index 100% rename from include/support/atomic_static.h rename to wpiutil/include/support/atomic_static.h diff --git a/include/support/leb128.h b/wpiutil/include/support/leb128.h similarity index 100% rename from include/support/leb128.h rename to wpiutil/include/support/leb128.h diff --git a/include/support/raw_istream.h b/wpiutil/include/support/raw_istream.h similarity index 100% rename from include/support/raw_istream.h rename to wpiutil/include/support/raw_istream.h diff --git a/include/support/raw_socket_istream.h b/wpiutil/include/support/raw_socket_istream.h similarity index 100% rename from include/support/raw_socket_istream.h rename to wpiutil/include/support/raw_socket_istream.h diff --git a/include/support/timestamp.h b/wpiutil/include/support/timestamp.h similarity index 100% rename from include/support/timestamp.h rename to wpiutil/include/support/timestamp.h diff --git a/include/tcpsockets/NetworkAcceptor.h b/wpiutil/include/tcpsockets/NetworkAcceptor.h similarity index 100% rename from include/tcpsockets/NetworkAcceptor.h rename to wpiutil/include/tcpsockets/NetworkAcceptor.h diff --git a/include/tcpsockets/NetworkStream.h b/wpiutil/include/tcpsockets/NetworkStream.h similarity index 100% rename from include/tcpsockets/NetworkStream.h rename to wpiutil/include/tcpsockets/NetworkStream.h diff --git a/include/tcpsockets/SocketError.h b/wpiutil/include/tcpsockets/SocketError.h similarity index 100% rename from include/tcpsockets/SocketError.h rename to wpiutil/include/tcpsockets/SocketError.h diff --git a/include/tcpsockets/TCPAcceptor.h b/wpiutil/include/tcpsockets/TCPAcceptor.h similarity index 100% rename from include/tcpsockets/TCPAcceptor.h rename to wpiutil/include/tcpsockets/TCPAcceptor.h diff --git a/include/tcpsockets/TCPConnector.h b/wpiutil/include/tcpsockets/TCPConnector.h similarity index 100% rename from include/tcpsockets/TCPConnector.h rename to wpiutil/include/tcpsockets/TCPConnector.h diff --git a/include/tcpsockets/TCPStream.h b/wpiutil/include/tcpsockets/TCPStream.h similarity index 100% rename from include/tcpsockets/TCPStream.h rename to wpiutil/include/tcpsockets/TCPStream.h diff --git a/wpiutil/src/dummy.cpp b/wpiutil/src/dummy.cpp deleted file mode 100644 index 3d12903c98..0000000000 --- a/wpiutil/src/dummy.cpp +++ /dev/null @@ -1,3 +0,0 @@ -namespace wpi { -void DummyFunction() {} -} diff --git a/src/llvm/ConvertUTF.cpp b/wpiutil/src/llvm/ConvertUTF.cpp similarity index 100% rename from src/llvm/ConvertUTF.cpp rename to wpiutil/src/llvm/ConvertUTF.cpp diff --git a/src/llvm/ConvertUTFWrapper.cpp b/wpiutil/src/llvm/ConvertUTFWrapper.cpp similarity index 100% rename from src/llvm/ConvertUTFWrapper.cpp rename to wpiutil/src/llvm/ConvertUTFWrapper.cpp diff --git a/src/llvm/SmallPtrSet.cpp b/wpiutil/src/llvm/SmallPtrSet.cpp similarity index 100% rename from src/llvm/SmallPtrSet.cpp rename to wpiutil/src/llvm/SmallPtrSet.cpp diff --git a/src/llvm/SmallVector.cpp b/wpiutil/src/llvm/SmallVector.cpp similarity index 100% rename from src/llvm/SmallVector.cpp rename to wpiutil/src/llvm/SmallVector.cpp diff --git a/src/llvm/StringExtras.cpp b/wpiutil/src/llvm/StringExtras.cpp similarity index 100% rename from src/llvm/StringExtras.cpp rename to wpiutil/src/llvm/StringExtras.cpp diff --git a/src/llvm/StringMap.cpp b/wpiutil/src/llvm/StringMap.cpp similarity index 100% rename from src/llvm/StringMap.cpp rename to wpiutil/src/llvm/StringMap.cpp diff --git a/src/llvm/StringRef.cpp b/wpiutil/src/llvm/StringRef.cpp similarity index 100% rename from src/llvm/StringRef.cpp rename to wpiutil/src/llvm/StringRef.cpp diff --git a/src/support/Base64.cpp b/wpiutil/src/support/Base64.cpp similarity index 100% rename from src/support/Base64.cpp rename to wpiutil/src/support/Base64.cpp diff --git a/src/support/SafeThread.cpp b/wpiutil/src/support/SafeThread.cpp similarity index 100% rename from src/support/SafeThread.cpp rename to wpiutil/src/support/SafeThread.cpp diff --git a/src/support/leb128.cpp b/wpiutil/src/support/leb128.cpp similarity index 100% rename from src/support/leb128.cpp rename to wpiutil/src/support/leb128.cpp diff --git a/src/support/raw_istream.cpp b/wpiutil/src/support/raw_istream.cpp similarity index 100% rename from src/support/raw_istream.cpp rename to wpiutil/src/support/raw_istream.cpp diff --git a/src/support/raw_socket_istream.cpp b/wpiutil/src/support/raw_socket_istream.cpp similarity index 100% rename from src/support/raw_socket_istream.cpp rename to wpiutil/src/support/raw_socket_istream.cpp diff --git a/src/support/timestamp.cpp b/wpiutil/src/support/timestamp.cpp similarity index 100% rename from src/support/timestamp.cpp rename to wpiutil/src/support/timestamp.cpp diff --git a/src/tcpsockets/SocketError.cpp b/wpiutil/src/tcpsockets/SocketError.cpp similarity index 100% rename from src/tcpsockets/SocketError.cpp rename to wpiutil/src/tcpsockets/SocketError.cpp diff --git a/src/tcpsockets/TCPAcceptor.cpp b/wpiutil/src/tcpsockets/TCPAcceptor.cpp similarity index 100% rename from src/tcpsockets/TCPAcceptor.cpp rename to wpiutil/src/tcpsockets/TCPAcceptor.cpp diff --git a/src/tcpsockets/TCPConnector.cpp b/wpiutil/src/tcpsockets/TCPConnector.cpp similarity index 100% rename from src/tcpsockets/TCPConnector.cpp rename to wpiutil/src/tcpsockets/TCPConnector.cpp diff --git a/src/tcpsockets/TCPStream.cpp b/wpiutil/src/tcpsockets/TCPStream.cpp similarity index 100% rename from src/tcpsockets/TCPStream.cpp rename to wpiutil/src/tcpsockets/TCPStream.cpp diff --git a/test/unit/Base64Test.cpp b/wpiutil/unittest/Base64Test.cpp similarity index 100% rename from test/unit/Base64Test.cpp rename to wpiutil/unittest/Base64Test.cpp diff --git a/test/unit/leb128Test.cpp b/wpiutil/unittest/leb128Test.cpp similarity index 100% rename from test/unit/leb128Test.cpp rename to wpiutil/unittest/leb128Test.cpp