From 067eeff3ddc713de7c6ff95ca19100a9fa2c392f Mon Sep 17 00:00:00 2001 From: qPCR4vir Date: Tue, 21 Jun 2016 20:43:36 +0200 Subject: [PATCH] improve verbose_preprocessor --- CMakeLists.txt | 2 +- include/nana/c++defines.hpp | 8 +++-- include/nana/deploy.hpp | 4 +-- include/nana/verbose_preprocessor.hpp | 51 +++++++++++++++++++++------ source/deploy.cpp | 3 ++ 5 files changed, 51 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 89751d6d..2c30bcd5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ option(NANA_CMAKE_LIBPNG_FROM_OS "Use libpng from operating system." ON) option(NANA_CMAKE_ENABLE_JPEG "Enable the use of JPEG" OFF) option(NANA_CMAKE_LIBJPEG_FROM_OS "Use libjpeg from operating system." ON) option(NANA_CMAKE_ENABLE_AUDIO "Enable class audio::play for PCM playback." OFF) -option(NANA_CMAKE_VERBOSE_PREPROCESSOR "Show annoying debug messages during compilation." OFF) +option(NANA_CMAKE_VERBOSE_PREPROCESSOR "Show annoying debug messages during compilation." ON) option(NANA_CMAKE_STOP_VERBOSE_PREPROCESSOR "Stop compilation after showing the annoying debug messages." ON) option(NANA_CMAKE_BUILD_DEMOS "Build all the demos form the nana_demo repository." OFF) option(NANA_CMAKE_INCLUDE_EXPERIMENTAL_DEMOS "" ON) diff --git a/include/nana/c++defines.hpp b/include/nana/c++defines.hpp index 2dc4c5f2..98c383c6 100644 --- a/include/nana/c++defines.hpp +++ b/include/nana/c++defines.hpp @@ -35,7 +35,10 @@ * - STD_NUMERIC_CONVERSIONS_NOT_SUPPORTED (MinGW with GCC < 4.8.1) * - STD_NUMERIC_CONVERSIONS_NOT_SUPPORTED (MinGW with GCC < 4.8.1) * - STD_TO_STRING_NOT_SUPPORTED (MinGW with GCC < 4.8) - */ + * - STD_FILESYSTEM_NOT_SUPPORTED (GCC < 5.3) .... + * - CXX_NO_INLINE_NAMESPACE (Visual C++ < 2015) + * - STD_MAKE_UNIQUE_NOT_SUPPORTED (GCC < 4.9) + */ #ifndef NANA_CXX_DEFINES_INCLUDED #define NANA_CXX_DEFINES_INCLUDED @@ -50,7 +53,7 @@ # # define CXX_NO_INLINE_NAMESPACE //no support of C++11 inline namespace until Visual C++ 2015 # define noexcept //no support of noexcept until Visual C++ 2015 -# define constexpr //no support of constexpr until Visual C++ 2015 +# define constexpr const //no support of constexpr until Visual C++ 2015 ? const ?? # endif #elif defined(__GNUC__) # if (__GNUC__ == 4 && __GNUC_MINOR__ < 6) @@ -141,6 +144,7 @@ #if ((__GNUC__ > 5) || ((__GNUC__ == 5) && (__GNUC_MINOR__ >= 3 ) ) ) # undef STD_FILESYSTEM_NOT_SUPPORTED + /// \todo define the namespace ???? #endif #if (__GNUC__ == 4) diff --git a/include/nana/deploy.hpp b/include/nana/deploy.hpp index 342adfe7..86bb894b 100644 --- a/include/nana/deploy.hpp +++ b/include/nana/deploy.hpp @@ -17,9 +17,7 @@ #include #include -#if defined(VERBOSE_PREPROCESSOR) - #include -#endif + #include #include diff --git a/include/nana/verbose_preprocessor.hpp b/include/nana/verbose_preprocessor.hpp index b62267f6..6a93c654 100644 --- a/include/nana/verbose_preprocessor.hpp +++ b/include/nana/verbose_preprocessor.hpp @@ -11,8 +11,8 @@ * * @brief show the values of configuration constants during compilation to facilitate build debugging. * - * Set VERBOSE_PREPROCESSOR to 1 to show the messages or to 0 for a normal build. - * Normally set to 0. Set to 1 only in case you want to debug the build system because it is extremely repetitive and slow. + * Define VERBOSE_PREPROCESSOR to show the messages or undefine for a normal build. + * Normally undefined. Define in case you want to debug the build system. * * @authors Ariel Vina-Rodriguez (qPCR4vir) * @@ -25,25 +25,55 @@ #if defined(VERBOSE_PREPROCESSOR) + #include + #include + + + #define STRING2(x) #x #define STRING(x) STRING2(x) - #pragma message ( "\nVerbose preprocessor =" STRING(VERBOSE_PREPROCESSOR)" , \n STOP_VERBOSE_PREPROCESSOR=" STRING(STOP_VERBOSE_PREPROCESSOR) ) + #pragma message ( "\n ---> SVerbose preprocessor \nVERBOSE_PREPROCESSOR=" STRING(VERBOSE_PREPROCESSOR)" , \n STOP_VERBOSE_PREPROCESSOR=" STRING(STOP_VERBOSE_PREPROCESSOR) ) - #pragma message ( "\nWindows: \n _WIN32=" STRING(_WIN32) ", \n __WIN32__ =" STRING(__WIN32__) " , \n WIN32=" STRING(WIN32)" , \n NANA_WINDOWS=" STRING(NANA_WINDOWS) ) + #pragma message ( "\n ---> OS: \nWindows: \n _WIN32=" STRING(_WIN32) ", \n __WIN32__ =" STRING(__WIN32__) " , \n WIN32=" STRING(WIN32)" , \n NANA_WINDOWS=" STRING(NANA_WINDOWS) ) - #pragma message ( "\nUNICODE: \n NANA_UNICODE=" STRING(NANA_UNICODE) ", \n _UNICODE =" STRING(_UNICODE) " , \n UNICODE=" STRING(UNICODE) ) + #pragma message ( "\nNIX: \n NANA_LINUX=" STRING(NANA_LINUX) ", \n NANA_POSIX=" STRING(NANA_POSIX) " , \n NANA_X11=" STRING(NANA_X11) " , \n APPLE=" STRING(APPLE) " , \n NANA_MACOS =" STRING(NANA_MACOS) " , \n NANA_IGNORE_CONF=" STRING(NANA_IGNORE_CONF) ) - #pragma message ( "\nMinGW: \n __MINGW32__=" STRING(__MINGW32__) ", \n __MINGW64__=" STRING(__MINGW64__) " , \n MINGW=" STRING(MINGW) ) + #pragma message ( "\n ---> Compilers: \n MinGW: \n __MINGW32__=" STRING(__MINGW32__) ", \n __MINGW64__=" STRING(__MINGW64__) " , \n MINGW=" STRING(MINGW) ) + + #pragma message ( "\nMSC: \n _MSC_VER=" STRING(_MSC_VER) ", \n _MSC_FULL_VER=" STRING(_MSC_FULL_VER ) ) #pragma message ( "\nGNU: \n __GNUC__=" STRING(__GNUC__) ", \n __GNUC_MINOR__=" STRING(__GNUC_MINOR__) " , \n __GNUC_PATCHLEVEL__=" STRING(__GNUC_PATCHLEVEL__) ) - #pragma message ( "\nSTD: \nSTD_CODECVT_NOT_SUPPORTED=" STRING(STD_CODECVT_NOT_SUPPORTED) " , \nSTD_THREAD_NOT_SUPPORTED=" STRING(STD_THREAD_NOT_SUPPORTED) ) + #pragma message ( "\nClang compiler: \n __clang__=" STRING(__clang__) ", \n __GLIBCPP__=" STRING(__GLIBCPP__) " , \n __GLIBCXX__=" STRING(__GLIBCXX__) ) - #pragma message ( "\nSTD: \nUSE_github_com_meganz_mingw_std_threads=" STRING(USE_github_com_meganz_mingw_std_threads) " , \nSTD_THREAD_NOT_SUPPORTED=" STRING(STD_THREAD_NOT_SUPPORTED) ) + #pragma message ( "\n ---> STD: \n STD_CODECVT_NOT_SUPPORTED=" STRING(STD_CODECVT_NOT_SUPPORTED) " , \n STD_THREAD_NOT_SUPPORTED=" STRING(STD_THREAD_NOT_SUPPORTED) ) - #pragma message ( "\nClang compiler: \n__clang__=" STRING(__clang__) ", \n__GLIBCPP__=" STRING(__GLIBCPP__) " , \n__GLIBCXX__=" STRING(__GLIBCXX__) ) + #pragma message ( "\n STD_NUMERIC_CONVERSIONS_NOT_SUPPORTED=" STRING(STD_NUMERIC_CONVERSIONS_NOT_SUPPORTED) " , \n STD_TO_STRING_NOT_SUPPORTED=" STRING(STD_TO_STRING_NOT_SUPPORTED) ", \n STD_TO_WSTRING_NOT_SUPPORTED=" STRING(STD_TO_WSTRING_NOT_SUPPORTED)) + + #pragma message ( "\n USE_github_com_meganz_mingw_std_threads=" STRING(USE_github_com_meganz_mingw_std_threads) ", \n NANA_ENABLE_MINGW_STD_THREADS_WITH_MEGANZ=" STRING(NANA_ENABLE_MINGW_STD_THREADS_WITH_MEGANZ)" , \n STD_THREAD_NOT_SUPPORTED=" STRING(STD_THREAD_NOT_SUPPORTED) ) + + #pragma message ( "\n STD_put_time_NOT_SUPPORTED=" STRING(STD_put_time_NOT_SUPPORTED) " , \n STD_MAKE_UNIQUE_NOT_SUPPORTED=" STRING(STD_MAKE_UNIQUE_NOT_SUPPORTED)" , \n STD_FILESYSTEM_NOT_SUPPORTED=" STRING(STD_FILESYSTEM_NOT_SUPPORTED)) + + #pragma message ( "\n BOOST_FILESYSTEM_AVAILABLE=" STRING(BOOST_FILESYSTEM_AVAILABLE) ", \n BOOST_FILESYSTEM_FORCE =" STRING(BOOST_FILESYSTEM_FORCE) " , \n STD_FILESYSTEM_FORCE=" STRING(STD_FILESYSTEM_FORCE) ", \n NANA_FILESYSTEM_FORCE=" STRING(NANA_FILESYSTEM_FORCE) ) + + #pragma message ( "\n CXX_NO_INLINE_NAMESPACE=" STRING(CXX_NO_INLINE_NAMESPACE) ", \n __has_include=" STRING(__has_include)" , \n __cpp_lib_experimental_filesystem=" STRING(__cpp_lib_experimental_filesystem) ) + + #include + + #pragma message ( "\n ...including filesystem_selector: \n STD_put_time_NOT_SUPPORTED=" STRING(STD_put_time_NOT_SUPPORTED) " , \n STD_FILESYSTEM_NOT_SUPPORTED=" STRING(STD_FILESYSTEM_NOT_SUPPORTED)) + + #pragma message ( "\n BOOST_FILESYSTEM_AVAILABLE=" STRING(BOOST_FILESYSTEM_AVAILABLE) ", \n BOOST_FILESYSTEM_FORCE =" STRING(BOOST_FILESYSTEM_FORCE) " , \n STD_FILESYSTEM_FORCE=" STRING(STD_FILESYSTEM_FORCE) ", \n NANA_FILESYSTEM_FORCE=" STRING(NANA_FILESYSTEM_FORCE) ) + + #pragma message ( "\n CXX_NO_INLINE_NAMESPACE=" STRING(CXX_NO_INLINE_NAMESPACE) ", \n __has_include=" STRING(__has_include)" , \n __cpp_lib_experimental_filesystem=" STRING(__cpp_lib_experimental_filesystem) ) + + // #pragma message ( "\n =" STRING() ", \n =" STRING()" , \n =" STRING() ) + + #pragma message ( "\nUNICODE: \n NANA_UNICODE=" STRING(NANA_UNICODE) ", \n _UNICODE =" STRING(_UNICODE) " , \n UNICODE=" STRING(UNICODE) ) + + #pragma message ( "\n ---> Libraries: \n NANA_ENABLE_AUDIO=" STRING(NANA_ENABLE_AUDIO) ", \n NANA_ENABLE_PNG =" STRING(NANA_ENABLE_PNG) " , \n USE_LIBPNG_FROM_OS=" STRING(USE_LIBPNG_FROM_OS) " , \n NANA_LIBPNG=" STRING(NANA_LIBPNG) ) + + #pragma message ( "\n NANA_ENABLE_JPEG=" STRING(NANA_ENABLE_JPEG) ", \n USE_LIBJPEG_FROM_OS =" STRING(USE_LIBJPEG_FROM_OS) " , \n NANA_LIBJPEG=" STRING(NANA_LIBJPEG) ) - #pragma message ( "\nMSC: \n_MSC_VER=" STRING(_MSC_VER) ", \n_MSC_FULL_VER=" STRING(_MSC_FULL_VER ) ) #if defined(STOP_VERBOSE_PREPROCESSOR) #error ("\nCompilation stopped to avoid annoying messages") @@ -52,5 +82,4 @@ #endif // VERBOSE_PREPROCESSOR - #endif //NANA_VERBOSE_PREPROCESSOR_H diff --git a/source/deploy.cpp b/source/deploy.cpp index 3e6dfcf7..b2f216e0 100644 --- a/source/deploy.cpp +++ b/source/deploy.cpp @@ -702,3 +702,6 @@ namespace nana } +#if defined(VERBOSE_PREPROCESSOR) +# include +#endif \ No newline at end of file