diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/io-tls/.nix/derivation.nix | 11 | ||||
-rw-r--r-- | modules/io-tls/SConstruct | 12 | ||||
-rw-r--r-- | modules/io-tls/c++/SConscript (renamed from modules/io-tls/SConscript) | 8 | ||||
-rw-r--r-- | modules/io-tls/examples/SConscript | 35 | ||||
-rw-r--r-- | modules/io-tls/examples/tls_client.cpp | 22 |
5 files changed, 81 insertions, 7 deletions
diff --git a/modules/io-tls/.nix/derivation.nix b/modules/io-tls/.nix/derivation.nix index 23d8ba6..6131a98 100644 --- a/modules/io-tls/.nix/derivation.nix +++ b/modules/io-tls/.nix/derivation.nix @@ -5,6 +5,7 @@ , version , forstio , gnutls +, build_examples ? "false" }: let @@ -26,7 +27,15 @@ in stdenv.mkDerivation { forstio.async forstio.io gnutls - ]; + ]; + + buildPhase = '' + scons build_examples=${build_examples} + ''; + + installPhase = '' + scons prefix=$out build_examples=${build_examples} install + ''; outputs = ["out" "dev"]; } diff --git a/modules/io-tls/SConstruct b/modules/io-tls/SConstruct index 5101537..103ccec 100644 --- a/modules/io-tls/SConstruct +++ b/modules/io-tls/SConstruct @@ -37,11 +37,18 @@ env_vars = Variables( args=ARGUMENTS ) +env_vars.Add( + BoolVariable('build_examples', + help='Build examples', + default=False + ) +); + env_vars.Add('prefix', help='Installation target location of build results and headers', default='/usr/local/', validator=isAbsolutePath -) +); env=Environment(ENV=os.environ, variables=env_vars, CPPPATH=[], CXX=['c++'], @@ -58,7 +65,8 @@ env.headers = []; env.targets = []; Export('env') -SConscript('SConscript') +SConscript('c++/SConscript') +SConscript('examples/SConscript') env.Alias('cdb', env.cdb); env.Alias('all', [env.targets]); diff --git a/modules/io-tls/SConscript b/modules/io-tls/c++/SConscript index f823103..a6947ea 100644 --- a/modules/io-tls/SConscript +++ b/modules/io-tls/c++/SConscript @@ -21,18 +21,18 @@ env.headers += io_tls_env.headers; ## Shared lib objects_shared = [] io_tls_env.add_source_files(objects_shared, io_tls_env.sources, shared=True); -io_tls_env.library_shared = io_tls_env.SharedLibrary('#build/forstio-io-tls', [objects_shared]); +env.library_shared = io_tls_env.SharedLibrary('#build/forstio-io-tls', [objects_shared]); ## Static lib objects_static = [] io_tls_env.add_source_files(objects_static, io_tls_env.sources, shared=False); -io_tls_env.library_static = io_tls_env.StaticLibrary('#build/forstio-io-tls', [objects_static]); +env.library_static = io_tls_env.StaticLibrary('#build/forstio-io-tls', [objects_static]); # Set Alias -env.Alias('library_io_tls', [io_tls_env.library_shared, io_tls_env.library_static]); +env.Alias('library_io_tls', [env.library_shared, env.library_static]); env.targets += ['library_io_tls']; # Install -env.Install('$prefix/lib/', [io_tls_env.library_shared, io_tls_env.library_static]); +env.Install('$prefix/lib/', [env.library_shared, env.library_static]); env.Install('$prefix/include/forstio/io/tls/', [io_tls_env.headers]); diff --git a/modules/io-tls/examples/SConscript b/modules/io-tls/examples/SConscript new file mode 100644 index 0000000..34d05e8 --- /dev/null +++ b/modules/io-tls/examples/SConscript @@ -0,0 +1,35 @@ +#!/bin/false + +import os +import os.path +import glob + + +Import('env') + +dir_path = Dir('.').abspath + +# Environment for base library +examples_env = env.Clone(); + +examples_env.sources = sorted(glob.glob(dir_path + "/*.cpp")) +examples_env.headers = sorted(glob.glob(dir_path + "/*.hpp")) + +env.sources += examples_env.sources; +env.headers += examples_env.headers; + +objects_static = [] +examples_env.tls_client = examples_env.Program('#bin/tls_client', ['tls_client.cpp', env.library_static]); +#examples_env.tls_server = examples_env.Program('#bin/tls_server', ['tls_server.cpp', env.library_static]); + +# Set Alias +env.examples = [ + examples_env.tls_client +#, examples_env.tls_server +]; +env.Alias('examples', env.examples); + +if env["build_examples"]: + env.targets += ['examples']; + env.Install('$prefix/bin/', env.examples); +#endif diff --git a/modules/io-tls/examples/tls_client.cpp b/modules/io-tls/examples/tls_client.cpp new file mode 100644 index 0000000..798c626 --- /dev/null +++ b/modules/io-tls/examples/tls_client.cpp @@ -0,0 +1,22 @@ +#include "../c++/tls.hpp" + +saw::error_or<void> real_main(){ + using namespace saw; + auto eo_aio = setup_async_io(); + if(eo_aio.is_error()){ + return eo_aio.get_error(); + } + auto& aio = eo_aio.get_value(); + return make_void(); +} + +int main(){ + auto eov = real_main(); + if(eov.is_error()){ + auto& err = eov.get_error(); + std::cerr<<"[Error]: "<<err.get_category()<<" - "<<err.get_message()<<std::endl; + return err.get_id(); + } + + return 0; +} |