From fa67d64e535c239d686993c00a3a34e6be2453f0 Mon Sep 17 00:00:00 2001 From: Erik Ogenvik Date: Wed, 8 Feb 2023 22:23:32 +0100 Subject: [PATCH] Rearrange directories a bit. --- .github/workflows/cmake.yml | 7 +--- .gitignore | 2 +- README.md | 2 +- external/sha256/CMakeLists.txt | 3 ++ src/CMakeLists.txt | 52 +++++++++--------------- src/cli/CLI.cpp | 10 ++--- src/cli/CMakeLists.txt | 13 ++++++ src/{ => squall}/core/Generator.cpp | 2 +- src/{ => squall}/core/Generator.h | 0 src/{ => squall}/core/Iterator.cpp | 0 src/{ => squall}/core/Iterator.h | 0 src/{ => squall}/core/Provider.cpp | 0 src/{ => squall}/core/Provider.h | 0 src/{ => squall}/core/Realizer.cpp | 0 src/{ => squall}/core/Realizer.h | 0 src/{ => squall}/core/Record.cpp | 0 src/{ => squall}/core/Record.h | 0 src/{ => squall}/core/Repository.cpp | 0 src/{ => squall}/core/Repository.h | 0 src/{ => squall}/core/Resolver.cpp | 0 src/{ => squall}/core/Resolver.h | 0 src/{ => squall}/core/Root.h | 0 src/{ => squall}/core/Signature.cpp | 0 src/{ => squall}/core/Signature.h | 0 src/{ => squall}/curl/CurlProvider.cpp | 0 src/{ => squall}/curl/CurlProvider.h | 2 +- tests/CurlProviderTest.cpp | 6 +-- tests/CurlResolverTest.cpp | 6 +-- tests/GeneratorTest.cpp | 4 +- tests/IteratorTest.cpp | 4 +- tests/ProviderTest.cpp | 6 +-- tests/RealizerTest.cpp | 8 ++-- tests/RepositoryTest.cpp | 2 +- tests/ResolverTest.cpp | 8 ++-- tests/SignatureTest.cpp | 2 +- conanfile.py => tools/conan/conanfile.py | 11 +++-- tools/conan/test_package/CMakeLists.txt | 16 ++++++++ tools/conan/test_package/conanfile.py | 25 ++++++++++++ tools/conan/test_package/example.cpp | 5 +++ 39 files changed, 123 insertions(+), 73 deletions(-) create mode 100644 src/cli/CMakeLists.txt rename src/{ => squall}/core/Generator.cpp (99%) rename src/{ => squall}/core/Generator.h (100%) rename src/{ => squall}/core/Iterator.cpp (100%) rename src/{ => squall}/core/Iterator.h (100%) rename src/{ => squall}/core/Provider.cpp (100%) rename src/{ => squall}/core/Provider.h (100%) rename src/{ => squall}/core/Realizer.cpp (100%) rename src/{ => squall}/core/Realizer.h (100%) rename src/{ => squall}/core/Record.cpp (100%) rename src/{ => squall}/core/Record.h (100%) rename src/{ => squall}/core/Repository.cpp (100%) rename src/{ => squall}/core/Repository.h (100%) rename src/{ => squall}/core/Resolver.cpp (100%) rename src/{ => squall}/core/Resolver.h (100%) rename src/{ => squall}/core/Root.h (100%) rename src/{ => squall}/core/Signature.cpp (100%) rename src/{ => squall}/core/Signature.h (100%) rename src/{ => squall}/curl/CurlProvider.cpp (100%) rename src/{ => squall}/curl/CurlProvider.h (96%) rename conanfile.py => tools/conan/conanfile.py (88%) create mode 100644 tools/conan/test_package/CMakeLists.txt create mode 100644 tools/conan/test_package/conanfile.py create mode 100644 tools/conan/test_package/example.cpp diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 7e7339711..74db2f57a 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -47,16 +47,13 @@ jobs: working-directory: ${{github.workspace}}/build shell: bash run: | - conan install .. -pr default --build=missing --update + conan install ../tools/conan -pr default --build=missing --update - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system shell: bash working-directory: ${{github.workspace}}/build - # Note the current convention is to use the -S and -B options here to specify source - # and build directories, but this is only available with CMake 3.13 and higher. - # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=ON - name: Build @@ -77,6 +74,6 @@ jobs: if [[ x"$CONAN_PASSWORD" != "x" && x"$CONAN_LOGIN_USERNAME" != "x" ]]; then echo "Creating and uploading Conan artifacts" conan user -p $CONAN_PASSWORD -r worldforge $CONAN_LOGIN_USERNAME - conan create .. worldforge/testing -pr default + conan create ../tools/conan worldforge/testing -pr default conan upload "*" -r worldforge -c --all fi diff --git a/.gitignore b/.gitignore index f64345228..455f8af89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/cmake-build-* +/cmake-* .idea build diff --git a/README.md b/README.md index d2c845790..2e56b3d8f 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ The simplest way to install all required dependencies is by using [Conan](https: ```bash mkdir build && cd build -conan install .. --build missing +conan install ../tools/conan --build missing cmake .. make -j all install ``` diff --git a/external/sha256/CMakeLists.txt b/external/sha256/CMakeLists.txt index 3890f52d3..226398cd0 100644 --- a/external/sha256/CMakeLists.txt +++ b/external/sha256/CMakeLists.txt @@ -2,6 +2,9 @@ add_library( sha256 SHA256.cpp) +target_include_directories(sha256 PUBLIC + $ +) install(TARGETS sha256 EXPORT "${PROJECT_NAME}Targets" LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7f2ee9a07..b07655b56 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,24 +1,24 @@ set(CORE_SOURCE_FILES - core/Record.cpp - core/Generator.cpp - core/Iterator.cpp - core/Provider.cpp - core/Realizer.cpp - core/Repository.cpp - core/Resolver.cpp - core/Signature.cpp + squall/core/Record.cpp + squall/core/Generator.cpp + squall/core/Iterator.cpp + squall/core/Provider.cpp + squall/core/Realizer.cpp + squall/core/Repository.cpp + squall/core/Resolver.cpp + squall/core/Signature.cpp ) set(CORE_HEADER_FILES - core/Record.h - core/Generator.h - core/Iterator.h - core/Provider.h - core/Realizer.h - core/Repository.h - core/Resolver.h - core/Root.h - core/Signature.h) + squall/core/Record.h + squall/core/Generator.h + squall/core/Iterator.h + squall/core/Provider.h + squall/core/Realizer.h + squall/core/Repository.h + squall/core/Resolver.h + squall/core/Root.h + squall/core/Signature.h) find_package(spdlog REQUIRED) @@ -30,9 +30,9 @@ target_link_libraries(squallcore PUBLIC find_package(CURL 7 REQUIRED) set(CURL_SOURCE_FILES - curl/CurlProvider.cpp) + squall/curl/CurlProvider.cpp) set(CURL_HEADER_FILES - curl/CurlProvider.h) + squall/curl/CurlProvider.h) wf_add_library(squallcurl CURL_SOURCE_FILES CURL_HEADER_FILES) target_link_libraries(squallcurl PUBLIC @@ -40,16 +40,4 @@ target_link_libraries(squallcurl PUBLIC CURL::libcurl ) - -find_package(CLI11 REQUIRED) -add_executable( - squall - cli/CLI.cpp -) -target_link_libraries(squall - squallcurl - squallcore - CLI11::CLI11 - ) - -INSTALL(TARGETS squall) \ No newline at end of file +add_subdirectory(cli) diff --git a/src/cli/CLI.cpp b/src/cli/CLI.cpp index f2d926854..24df21641 100644 --- a/src/cli/CLI.cpp +++ b/src/cli/CLI.cpp @@ -17,11 +17,11 @@ */ #include "CLI.h" -#include "core/Repository.h" -#include "core/Generator.h" -#include "core/Resolver.h" -#include "curl/CurlProvider.h" -#include "core/Realizer.h" +#include "squall/core/Repository.h" +#include "squall/core/Generator.h" +#include "squall/core/Resolver.h" +#include "squall/curl/CurlProvider.h" +#include "squall/core/Realizer.h" #include #include diff --git a/src/cli/CMakeLists.txt b/src/cli/CMakeLists.txt new file mode 100644 index 000000000..f3f890fa7 --- /dev/null +++ b/src/cli/CMakeLists.txt @@ -0,0 +1,13 @@ +find_package(CLI11 REQUIRED) +add_executable(squall-bin + CLI.cpp + ) +set_target_properties(squall-bin + PROPERTIES OUTPUT_NAME squall) +target_link_libraries(squall-bin + squallcurl + squallcore + CLI11::CLI11 + ) + +INSTALL(TARGETS squall-bin) \ No newline at end of file diff --git a/src/core/Generator.cpp b/src/squall/core/Generator.cpp similarity index 99% rename from src/core/Generator.cpp rename to src/squall/core/Generator.cpp index 9c2e98608..299af7c36 100644 --- a/src/core/Generator.cpp +++ b/src/squall/core/Generator.cpp @@ -17,7 +17,7 @@ */ #include "Generator.h" -#include "../../external/sha256/SHA256.h" +#include "SHA256.h" #include diff --git a/src/core/Generator.h b/src/squall/core/Generator.h similarity index 100% rename from src/core/Generator.h rename to src/squall/core/Generator.h diff --git a/src/core/Iterator.cpp b/src/squall/core/Iterator.cpp similarity index 100% rename from src/core/Iterator.cpp rename to src/squall/core/Iterator.cpp diff --git a/src/core/Iterator.h b/src/squall/core/Iterator.h similarity index 100% rename from src/core/Iterator.h rename to src/squall/core/Iterator.h diff --git a/src/core/Provider.cpp b/src/squall/core/Provider.cpp similarity index 100% rename from src/core/Provider.cpp rename to src/squall/core/Provider.cpp diff --git a/src/core/Provider.h b/src/squall/core/Provider.h similarity index 100% rename from src/core/Provider.h rename to src/squall/core/Provider.h diff --git a/src/core/Realizer.cpp b/src/squall/core/Realizer.cpp similarity index 100% rename from src/core/Realizer.cpp rename to src/squall/core/Realizer.cpp diff --git a/src/core/Realizer.h b/src/squall/core/Realizer.h similarity index 100% rename from src/core/Realizer.h rename to src/squall/core/Realizer.h diff --git a/src/core/Record.cpp b/src/squall/core/Record.cpp similarity index 100% rename from src/core/Record.cpp rename to src/squall/core/Record.cpp diff --git a/src/core/Record.h b/src/squall/core/Record.h similarity index 100% rename from src/core/Record.h rename to src/squall/core/Record.h diff --git a/src/core/Repository.cpp b/src/squall/core/Repository.cpp similarity index 100% rename from src/core/Repository.cpp rename to src/squall/core/Repository.cpp diff --git a/src/core/Repository.h b/src/squall/core/Repository.h similarity index 100% rename from src/core/Repository.h rename to src/squall/core/Repository.h diff --git a/src/core/Resolver.cpp b/src/squall/core/Resolver.cpp similarity index 100% rename from src/core/Resolver.cpp rename to src/squall/core/Resolver.cpp diff --git a/src/core/Resolver.h b/src/squall/core/Resolver.h similarity index 100% rename from src/core/Resolver.h rename to src/squall/core/Resolver.h diff --git a/src/core/Root.h b/src/squall/core/Root.h similarity index 100% rename from src/core/Root.h rename to src/squall/core/Root.h diff --git a/src/core/Signature.cpp b/src/squall/core/Signature.cpp similarity index 100% rename from src/core/Signature.cpp rename to src/squall/core/Signature.cpp diff --git a/src/core/Signature.h b/src/squall/core/Signature.h similarity index 100% rename from src/core/Signature.h rename to src/squall/core/Signature.h diff --git a/src/curl/CurlProvider.cpp b/src/squall/curl/CurlProvider.cpp similarity index 100% rename from src/curl/CurlProvider.cpp rename to src/squall/curl/CurlProvider.cpp diff --git a/src/curl/CurlProvider.h b/src/squall/curl/CurlProvider.h similarity index 96% rename from src/curl/CurlProvider.h rename to src/squall/curl/CurlProvider.h index 58366573d..95444dbcc 100644 --- a/src/curl/CurlProvider.h +++ b/src/squall/curl/CurlProvider.h @@ -19,7 +19,7 @@ #ifndef SQUALL_CURLPROVIDER_H #define SQUALL_CURLPROVIDER_H -#include "core/Provider.h" +#include "squall/core/Provider.h" namespace Squall { class CurlProvider : public Provider { diff --git a/tests/CurlProviderTest.cpp b/tests/CurlProviderTest.cpp index 4e23fa7b2..251d988a1 100644 --- a/tests/CurlProviderTest.cpp +++ b/tests/CurlProviderTest.cpp @@ -16,9 +16,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Iterator.h" -#include "core/Repository.h" -#include "curl/CurlProvider.h" +#include "squall/core/Iterator.h" +#include "squall/core/Repository.h" +#include "squall/curl/CurlProvider.h" #include #include #include diff --git a/tests/CurlResolverTest.cpp b/tests/CurlResolverTest.cpp index c26b3a9b6..876bca891 100644 --- a/tests/CurlResolverTest.cpp +++ b/tests/CurlResolverTest.cpp @@ -16,9 +16,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Repository.h" -#include "curl/CurlProvider.h" -#include "core/Resolver.h" +#include "squall/core/Repository.h" +#include "squall/curl/CurlProvider.h" +#include "squall/core/Resolver.h" #include #include #include diff --git a/tests/GeneratorTest.cpp b/tests/GeneratorTest.cpp index d6bb76bea..b18a1b30b 100644 --- a/tests/GeneratorTest.cpp +++ b/tests/GeneratorTest.cpp @@ -16,8 +16,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Generator.h" -#include "core/Repository.h" +#include "squall/core/Generator.h" +#include "squall/core/Repository.h" std::ostream& operator<<(std::ostream& os, Squall::FileEntry const& value) { os << "FileEntry{ signature: " << value.signature << " fileName: '" << value.fileName << "' size: " << value.size << " type: " << static_cast::type>(value.type) << "}"; diff --git a/tests/IteratorTest.cpp b/tests/IteratorTest.cpp index 7006bd20f..f795ea217 100644 --- a/tests/IteratorTest.cpp +++ b/tests/IteratorTest.cpp @@ -16,8 +16,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Iterator.h" -#include "core/Repository.h" +#include "squall/core/Iterator.h" +#include "squall/core/Repository.h" #include #include #include diff --git a/tests/ProviderTest.cpp b/tests/ProviderTest.cpp index b878c70e0..eea1c236e 100644 --- a/tests/ProviderTest.cpp +++ b/tests/ProviderTest.cpp @@ -16,9 +16,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Generator.h" -#include "core/Repository.h" -#include "core/Provider.h" +#include "squall/core/Generator.h" +#include "squall/core/Repository.h" +#include "squall/core/Provider.h" #include #include #include diff --git a/tests/RealizerTest.cpp b/tests/RealizerTest.cpp index ef09e2a90..7f927908c 100644 --- a/tests/RealizerTest.cpp +++ b/tests/RealizerTest.cpp @@ -16,10 +16,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Realizer.h" -#include "core/Repository.h" -#include "core/Provider.h" -#include "core/Resolver.h" +#include "squall/core/Realizer.h" +#include "squall/core/Repository.h" +#include "squall/core/Provider.h" +#include "squall/core/Resolver.h" #include #include #include diff --git a/tests/RepositoryTest.cpp b/tests/RepositoryTest.cpp index 55b483ffb..515200552 100644 --- a/tests/RepositoryTest.cpp +++ b/tests/RepositoryTest.cpp @@ -16,7 +16,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Repository.h" +#include "squall/core/Repository.h" #include #include #include diff --git a/tests/ResolverTest.cpp b/tests/ResolverTest.cpp index 3e880733a..5afa58b1b 100644 --- a/tests/ResolverTest.cpp +++ b/tests/ResolverTest.cpp @@ -16,10 +16,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Generator.h" -#include "core/Repository.h" -#include "core/Provider.h" -#include "core/Resolver.h" +#include "squall/core/Generator.h" +#include "squall/core/Repository.h" +#include "squall/core/Provider.h" +#include "squall/core/Resolver.h" #include #include #include diff --git a/tests/SignatureTest.cpp b/tests/SignatureTest.cpp index 84f925bb0..0143587b7 100644 --- a/tests/SignatureTest.cpp +++ b/tests/SignatureTest.cpp @@ -16,7 +16,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "core/Repository.h" +#include "squall/core/Repository.h" #include #include #include diff --git a/conanfile.py b/tools/conan/conanfile.py similarity index 88% rename from conanfile.py rename to tools/conan/conanfile.py index 4a729eef6..f408a4667 100644 --- a/conanfile.py +++ b/tools/conan/conanfile.py @@ -23,15 +23,18 @@ class SquallConan(ConanFile): "revision": "auto" } - def build(self): + def _configure_cmake(self): cmake = CMake(self) cmake.configure(source_folder=".") + return cmake + + def build(self): + cmake = self._configure_cmake() cmake.build() - cmake.install() def package_info(self): self.cpp_info.libs = tools.collect_libs(self) - self.cpp_info.includedirs = ["include"] def package(self): - pass + cmake = self._configure_cmake() + cmake.install() diff --git a/tools/conan/test_package/CMakeLists.txt b/tools/conan/test_package/CMakeLists.txt new file mode 100644 index 000000000..2c9847cb3 --- /dev/null +++ b/tools/conan/test_package/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 2.8.12) +project(PackageTest CXX) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED on) + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup() + +add_executable(example example.cpp) +target_link_libraries(example ${CONAN_LIBS}) + +# CTest is a testing tool that can be used to test your project. +# enable_testing() +# add_test(NAME example +# WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin +# COMMAND example) diff --git a/tools/conan/test_package/conanfile.py b/tools/conan/test_package/conanfile.py new file mode 100644 index 000000000..e1c0bb98b --- /dev/null +++ b/tools/conan/test_package/conanfile.py @@ -0,0 +1,25 @@ +import os + +from conans import ConanFile, CMake, tools + + +class WfmathTestConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "cmake" + + def build(self): + cmake = CMake(self) + # Current dir is "test_package/build/" and CMakeLists.txt is + # in "test_package" + cmake.configure() + cmake.build() + + def imports(self): + self.copy("*.dll", dst="bin", src="bin") + self.copy("*.dylib*", dst="bin", src="lib") + self.copy('*.so*', dst='bin', src='lib') + + def test(self): + if not tools.cross_building(self.settings): + os.chdir("bin") + self.run(".%sexample" % os.sep) diff --git a/tools/conan/test_package/example.cpp b/tools/conan/test_package/example.cpp new file mode 100644 index 000000000..c4bd79f86 --- /dev/null +++ b/tools/conan/test_package/example.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + Squall::Signature tested("0123456789012345678901234567890123456789012345678901234567890123"); +}