summaryrefslogtreecommitdiff
path: root/hello
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-04-29 16:20:50 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-04-29 16:20:50 +0300
commit3dc9c1698aa18be1f5a0c67a70a4e6cd655a3da4 (patch)
treefd519a6fe244aee44f5e6103015385852aedd195 /hello
parenta9135c795451b594b904f11c62e1fe71c6ec9c85 (diff)
Add hxx extension for headers and lib prefix for library dirs
Diffstat (limited to 'hello')
-rw-r--r--hello/buildfile26
-rw-r--r--hello/export36
-rw-r--r--hello/hello28
-rw-r--r--hello/hello.cxx16
4 files changed, 0 insertions, 106 deletions
diff --git a/hello/buildfile b/hello/buildfile
deleted file mode 100644
index 30787e2..0000000
--- a/hello/buildfile
+++ /dev/null
@@ -1,26 +0,0 @@
-import int_libs = libformat%lib{format}
-import imp_libs = libprint%lib{print}
-
-lib{hello}: {hxx cxx}{hello} hxx{export} $imp_libs $int_libs
-
-# For pre-releases use the complete version to make sure they cannot be used
-# in place of another pre-release or the final version.
-#
-if $version.pre_release
- lib{hello}: bin.lib.version = @"-$version.project_id"
-else
- lib{hello}: bin.lib.version = @"-$version.major.$version.minor"
-
-cxx.poptions =+ "-I$out_root" "-I$src_root"
-obja{*}: cxx.poptions += -DLIBHELLO_STATIC_BUILD
-objs{*}: cxx.poptions += -DLIBHELLO_SHARED_BUILD
-
-lib{hello}: cxx.export.poptions = "-I$out_root" "-I$src_root"
-liba{hello}: cxx.export.poptions += -DLIBHELLO_STATIC
-libs{hello}: cxx.export.poptions += -DLIBHELLO_SHARED
-
-lib{hello}: cxx.export.libs = $int_libs
-
-# Install into the hello/ subdirectory of, say, /usr/include/.
-#
-install.include = $install.include/hello/
diff --git a/hello/export b/hello/export
deleted file mode 100644
index 18f4968..0000000
--- a/hello/export
+++ /dev/null
@@ -1,36 +0,0 @@
-// file: hello/export -*- C++ -*-
-
-#pragma once
-
-// Normally we don't export class templates (but do complete specializations),
-// inline functions, and classes with only inline member functions. Exporting
-// classes that inherit from non-exported/imported bases (e.g., std::string)
-// will end up badly. The only known workarounds are to not inherit or to not
-// export. Also, MinGW GCC doesn't like seeing non-exported function being
-// used before their inline definition. The workaround is to reorder code. In
-// the end it's all trial and error.
-
-#if defined(LIBHELLO_STATIC) // Using static.
-# define LIBHELLO_EXPORT
-#elif defined(LIBHELLO_STATIC_BUILD) // Building static.
-# define LIBHELLO_EXPORT
-#elif defined(LIBHELLO_SHARED) // Using shared.
-# ifdef _WIN32
-# define LIBHELLO_EXPORT __declspec(dllimport)
-# else
-# define LIBHELLO_EXPORT
-# endif
-#elif defined(LIBHELLO_SHARED_BUILD) // Building shared.
-# ifdef _WIN32
-# define LIBHELLO_EXPORT __declspec(dllexport)
-# else
-# define LIBHELLO_EXPORT
-# endif
-#else
-// If none of the above macros are defined, then we assume we are being used
-// by some third-party build system that cannot/doesn't signal the library
-// type. Note that this fallback works for both static and shared but in case
-// of shared will be sub-optimal compared to having dllimport.
-//
-# define LIBHELLO_EXPORT // Using static or shared.
-#endif
diff --git a/hello/hello b/hello/hello
deleted file mode 100644
index 75a47a0..0000000
--- a/hello/hello
+++ /dev/null
@@ -1,28 +0,0 @@
-// file: hello/hello -*- C++ -*-
-
-#pragma once
-
-#include <string>
-
-#include <format/format>
-
-#include <hello/export>
-
-namespace hello
-{
- // If you compare this interface to version 1.0, then you will notice that
- // while it is API/source-compatible (the signature of say() is unchanged)
- // it is not ABI/binary-compatible (say() is now inline).
- //
- // Notice also that inline say() calls format() which means libformat is an
- // interface dependency of libhello.
-
- LIBHELLO_EXPORT void
- say_formatted (const std::string& message);
-
- inline void
- say (const std::string& name)
- {
- say_formatted (format ("Hello", name));
- }
-}
diff --git a/hello/hello.cxx b/hello/hello.cxx
deleted file mode 100644
index 8fdd5a6..0000000
--- a/hello/hello.cxx
+++ /dev/null
@@ -1,16 +0,0 @@
-// file: hello/hello.cxx -*- C++ -*-
-
-#include <hello/hello>
-
-#include <print/print>
-
-using namespace std;
-
-namespace hello
-{
- void
- say_formatted (const string& m)
- {
- print (m);
- }
-}