Skip to content

Commit

Permalink
feat: move all thirdparty libraries to ext directory, out of src
Browse files Browse the repository at this point in the history
  • Loading branch information
craftablescience committed Jun 29, 2024
1 parent 30b5660 commit 4b06b2e
Show file tree
Hide file tree
Showing 11 changed files with 108 additions and 102 deletions.
18 changes: 9 additions & 9 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[submodule "src/thirdparty/bufferstream"]
path = src/thirdparty/bufferstream
[submodule "ext/bufferstream"]
path = ext/bufferstream
url = https://github.com/craftablescience/BufferStream
[submodule "src/thirdparty/cryptopp"]
path = src/thirdparty/cryptopp
[submodule "ext/cryptopp"]
path = ext/cryptopp
url = https://github.com/abdes/cryptopp-cmake
[submodule "src/thirdparty/miniz"]
path = src/thirdparty/miniz
url = https://github.com/richgel999/miniz
[submodule "src/thirdparty/minizip-ng"]
path = src/thirdparty/minizip-ng
[submodule "ext/miniz"]
path = ext/miniz
url = https://github.com/richgel999/miniz
[submodule "ext/minizip-ng"]
path = ext/minizip-ng
url = https://github.com/zlib-ng/minizip-ng
101 changes: 9 additions & 92 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,124 +38,42 @@ if(SOURCEPP_USE_STATIC_MSVC_RUNTIME)
endif()


# bufferstream
if(NOT TARGET bufferstream)
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/thirdparty/bufferstream")
endif()


# compressonator
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/ext/compressonator")


# cryptopp
if (NOT TARGET cryptopp::cryptopp)
set(CRYPTOPP_BUILD_TESTING OFF CACHE INTERNAL "")
set(CRYPTOPP_INSTALL OFF CACHE INTERNAL "")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/thirdparty/cryptopp")
endif()


# ice
if(SOURCEPP_USE_VICEPP)
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/ext/ice")
endif()


# miniz
if(SOURCEPP_USE_VTFPP AND NOT TARGET miniz)
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/thirdparty/miniz")
endif()


# minizip-ng
if (SOURCEPP_USE_VPKPP AND NOT TARGET MINIZIP::minizip)
set(MZ_COMPAT OFF CACHE INTERNAL "")
set(MZ_ZLIB OFF CACHE INTERNAL "")
set(MZ_BZIP2 OFF CACHE INTERNAL "")
set(MZ_LZMA OFF CACHE INTERNAL "")
set(MZ_ZSTD OFF CACHE INTERNAL "")
set(MZ_LIBCOMP OFF CACHE INTERNAL "")
set(MZ_PKCRYPT OFF CACHE INTERNAL "")
set(MZ_WZAES OFF CACHE INTERNAL "")
set(MZ_OPENSSL OFF CACHE INTERNAL "")
set(MZ_FETCH_LIBS ON CACHE INTERNAL "")
set(MZ_FORCE_FETCH_LIBS ON CACHE INTERNAL "")
set(SKIP_INSTALL_ALL ON CACHE INTERNAL "")
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/src/thirdparty/minizip-ng")
endif()
# Add scripts
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(AddPrettyParser)
include(AddSourcePPLibrary)
include(IncludeSubdirectory)


# stb
if(SOURCEPP_USE_VTFPP)
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/ext/stb")
endif()
# Include thirdparty libraries
include_subdirectory(ext)


# Shared code
add_library(${PROJECT_NAME} STATIC
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/buffer/Buffer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/Adler32.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/CRC32.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/MD5.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/RSA.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/String.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/fs/FS.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Angles.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Float.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Integer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Matrix.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Vector.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/string/String.h"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sourcepp/buffer/Buffer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sourcepp/crypto/Adler32.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sourcepp/crypto/CRC32.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sourcepp/crypto/MD5.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sourcepp/crypto/RSA.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sourcepp/crypto/String.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sourcepp/fs/FS.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sourcepp/string/String.cpp")
target_link_libraries(${PROJECT_NAME} PUBLIC bufferstream cryptopp::cryptopp)
target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
include_subdirectory(src/sourcepp)


# Shared C code
if(SOURCEPP_BUILD_C_WRAPPERS)
list(APPEND ${PROJECT_NAME}c_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/API.h"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/Buffer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/Convert.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/Helpers.h"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/String.h"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/src/sourceppc/Buffer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/src/sourceppc/Convert.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/src/sourceppc/String.cpp")
include_subdirectory(lang/c/src/sourceppc PROPAGATE ${PROJECT_NAME}c_SOURCES)
endif()


# Tests, part 1
if(SOURCEPP_BUILD_TESTS)
set(SOURCEPP_TEST_NAME "${PROJECT_NAME}_test")

include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG v1.14.0)
FetchContent_MakeAvailable(googletest)
enable_testing()

set(${SOURCEPP_TEST_NAME}_SOURCES "")
list(APPEND ${SOURCEPP_TEST_NAME}_DEPS gtest_main)
endif()


# Add scripts
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(AddPrettyParser)
include(AddSourcePPLibrary)


# Add libraries
add_sourcepp_library(dmxpp)
add_sourcepp_library(fgdpp)
Expand All @@ -172,7 +90,6 @@ if(SOURCEPP_BUILD_TESTS)
add_executable(${SOURCEPP_TEST_NAME} ${${SOURCEPP_TEST_NAME}_SOURCES})
target_link_libraries(${SOURCEPP_TEST_NAME} PUBLIC ${${SOURCEPP_TEST_NAME}_DEPS})
target_compile_definitions(${SOURCEPP_TEST_NAME} PUBLIC ASSET_ROOT="${CMAKE_CURRENT_SOURCE_DIR}/test/res/")

include(GoogleTest)
gtest_discover_tests(${SOURCEPP_TEST_NAME})
endif()
6 changes: 6 additions & 0 deletions cmake/IncludeSubdirectory.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
function(include_subdirectory SUBDIR)
cmake_parse_arguments(PARSE_ARGV 1 OPTIONS "" "" "PROPAGATE")
cmake_path(GET SUBDIR FILENAME SUBDIR_FILENAME)
include("${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/_${SUBDIR_FILENAME}.cmake")
return(PROPAGATE ${OPTIONS_PROPAGATE})
endfunction()
48 changes: 48 additions & 0 deletions ext/_ext.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# bufferstream
if(NOT TARGET bufferstream)
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/bufferstream")
endif()


# compressonator
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/compressonator")


# cryptopp
if (NOT TARGET cryptopp::cryptopp)
set(CRYPTOPP_BUILD_TESTING OFF CACHE INTERNAL "")
set(CRYPTOPP_INSTALL OFF CACHE INTERNAL "")
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/cryptopp")
endif()


# ice
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/ice")


# miniz
if(NOT TARGET miniz)
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/miniz")
endif()


# minizip-ng
if (NOT TARGET MINIZIP::minizip)
set(MZ_COMPAT OFF CACHE INTERNAL "")
set(MZ_ZLIB OFF CACHE INTERNAL "")
set(MZ_BZIP2 OFF CACHE INTERNAL "")
set(MZ_LZMA OFF CACHE INTERNAL "")
set(MZ_ZSTD OFF CACHE INTERNAL "")
set(MZ_LIBCOMP OFF CACHE INTERNAL "")
set(MZ_PKCRYPT OFF CACHE INTERNAL "")
set(MZ_WZAES OFF CACHE INTERNAL "")
set(MZ_OPENSSL OFF CACHE INTERNAL "")
set(MZ_FETCH_LIBS ON CACHE INTERNAL "")
set(MZ_FORCE_FETCH_LIBS ON CACHE INTERNAL "")
set(SKIP_INSTALL_ALL ON CACHE INTERNAL "")
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/minizip-ng")
endif()


# stb
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/stb")
1 change: 1 addition & 0 deletions ext/miniz
Submodule miniz added at 8573fd
9 changes: 9 additions & 0 deletions lang/c/src/sourceppc/_sourceppc.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
list(APPEND ${PROJECT_NAME}c_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/API.h"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/Buffer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/Convert.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/Helpers.h"
"${CMAKE_CURRENT_SOURCE_DIR}/lang/c/include/sourceppc/String.h"
"${CMAKE_CURRENT_LIST_DIR}/Buffer.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Convert.cpp"
"${CMAKE_CURRENT_LIST_DIR}/String.cpp")
26 changes: 26 additions & 0 deletions src/sourcepp/_sourcepp.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
add_library(${PROJECT_NAME} STATIC
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/buffer/Buffer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/Adler32.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/CRC32.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/MD5.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/RSA.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/crypto/String.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/fs/FS.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Angles.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Float.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Integer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Matrix.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/math/Vector.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/sourcepp/string/String.h"
"${CMAKE_CURRENT_LIST_DIR}/buffer/Buffer.cpp"
"${CMAKE_CURRENT_LIST_DIR}/crypto/Adler32.cpp"
"${CMAKE_CURRENT_LIST_DIR}/crypto/CRC32.cpp"
"${CMAKE_CURRENT_LIST_DIR}/crypto/MD5.cpp"
"${CMAKE_CURRENT_LIST_DIR}/crypto/RSA.cpp"
"${CMAKE_CURRENT_LIST_DIR}/crypto/String.cpp"
"${CMAKE_CURRENT_LIST_DIR}/fs/FS.cpp"
"${CMAKE_CURRENT_LIST_DIR}/string/String.cpp")

target_link_libraries(${PROJECT_NAME} PUBLIC bufferstream cryptopp::cryptopp)

target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
1 change: 0 additions & 1 deletion src/thirdparty/miniz
Submodule miniz deleted from 8714fd

0 comments on commit 4b06b2e

Please sign in to comment.