diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 15ebbfc31262..edf5901bf537 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10676,6 +10676,12 @@ githubId = 33242106; name = "Uri Baghin"; }; + urlordjames = { + email = "urlordjames@gmail.com"; + github = "urlordjames"; + githubId = 32751441; + name = "urlordjames"; + }; uskudnik = { email = "urban.skudnik@gmail.com"; github = "uskudnik"; diff --git a/pkgs/development/libraries/drogon/default.nix b/pkgs/development/libraries/drogon/default.nix new file mode 100644 index 000000000000..8234891046da --- /dev/null +++ b/pkgs/development/libraries/drogon/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchFromGitHub, cmake, jsoncpp, libuuid, zlib, openssl, lib }: + +stdenv.mkDerivation rec { + pname = "drogon"; + version = "1.6.0"; + + src = fetchFromGitHub { + owner = "an-tao"; + repo = "drogon"; + rev = "v${version}"; + sha256 = "0ncdlsi3zhmpdwh83d52npb1b2q982y858yl88zl2nfq4zhcm3wa"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake ]; + + cmakeFlags = [ + # examples are used in the test during installCheckPhase, otherwise they are unnecessary + "-DBUILD_EXAMPLES=${if doInstallCheck then "ON" else "OFF"}" + ]; + + propagatedBuildInputs = [ + jsoncpp + libuuid + zlib + openssl + ]; + + patches = [ + # this part of the test fails because it attempts to configure a CMake project that uses find_package on itself + # the rest of the test runs fine because it uses executables that are built in buildPhase when BUILD_EXAMPLES is enabled + ./no_cmake_test.patch + ]; + + installCheckPhase = '' + cd .. + patchShebangs test.sh + ./test.sh + ''; + + doInstallCheck = true; + + meta = with lib; { + homepage = "https://github.com/an-tao/drogon"; + description = "C++14/17 based HTTP web application framework"; + license = licenses.mit; + maintainers = [ maintainers.urlordjames ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/libraries/drogon/no_cmake_test.patch b/pkgs/development/libraries/drogon/no_cmake_test.patch new file mode 100644 index 000000000000..8d38fbf44b70 --- /dev/null +++ b/pkgs/development/libraries/drogon/no_cmake_test.patch @@ -0,0 +1,42 @@ +diff --git a/test.sh b/test.sh +index e5da08e..ba620cc 100755 +--- a/test.sh ++++ b/test.sh +@@ -157,37 +157,6 @@ cd ../views + + echo "Hello, world!" >>hello.csp + +-cd ../build +-if [ $os = "windows" ]; then +- conan install $src_dir -s compiler="Visual Studio" -s compiler.version=16 -sbuild_type=Debug -g cmake_paths +- cmake_gen="$cmake_gen -DCMAKE_TOOLCHAIN_FILE=conan_paths.cmake -DCMAKE_INSTALL_PREFIX=$src_dir/install" +-fi +-cmake .. $cmake_gen +- +-if [ $? -ne 0 ]; then +- echo "Error in testing" +- exit -1 +-fi +- +-cmake --build . -- $make_flags +- +-if [ $? -ne 0 ]; then +- echo "Error in testing" +- exit -1 +-fi +- +-if [ $os = "linux" ]; then +- if [ ! -f "drogon_test" ]; then +- echo "Failed to build drogon_test" +- exit -1 +- fi +-else +- if [ ! -f "Debug\drogon_test.exe" ]; then +- echo "Failed to build drogon_test" +- exit -1 +- fi +-fi +- + cd ../../ + rm -rf drogon_test + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 97b3943cbfcf..400c7847fcea 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14770,6 +14770,8 @@ in vdpauinfo; }; + drogon = callPackage ../development/libraries/drogon { }; + dssi = callPackage ../development/libraries/dssi {}; duckdb = callPackage ../development/libraries/duckdb {};