Skip to content

Commit

Permalink
Avoid build warnings with more modern clang compilers
Browse files Browse the repository at this point in the history
  • Loading branch information
hvellyr committed Oct 3, 2017
1 parent eb55691 commit f51d0ce
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 28 deletions.
15 changes: 2 additions & 13 deletions CMakeLists.txt
Expand Up @@ -29,6 +29,8 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Debug)
endif()

include(cmake/features.cmake)

# Enable warnings
if(CMAKE_CXX_COMPILER_ID STREQUAL Clang
OR CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
Expand All @@ -49,19 +51,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
set(CMAKE_MACOSX_RPATH ON)

# Check for some system header files
# This only works for C headers, sigh.
# INCLUDE (CheckIncludeFiles)
# CHECK_INCLUDE_FILES (codecvt HAVE_STD_CODECVT)
INCLUDE (CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_FLAGS "${cxx11_options}")
CHECK_CXX_SOURCE_COMPILES("
#include <codecvt>
int main() {
std::codecvt_utf8_utf16<char16_t> x;
return 0;
}
" HAVE_STD_CODECVT)
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/src/config.hpp.in ${PROJECT_BINARY_DIR}/src/config.hpp)

enable_testing()
Expand Down
27 changes: 27 additions & 0 deletions cmake/features.cmake
@@ -0,0 +1,27 @@
# Copyright (c) 2017 Gregor Klinke

include(CheckCXXSourceCompiles)

set(CMAKE_REQUIRED_FLAGS "${cxx11_options}")


set(CMAKE_REQUIRED_FLAGS "${cxx11_options}")
CHECK_CXX_SOURCE_COMPILES("
#include <codecvt>
int main() {
std::codecvt_utf8_utf16<char16_t> x;
return 0;
}
" TEXTBOOK_HAVE_STD_CODECVT)


if(CMAKE_CXX_COMPILER_ID STREQUAL Clang
OR CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
CHECK_CXX_COMPILER_FLAG("-Wno-shift-negative-value"
TEXTBOOK_HAVE_WARNING_SHIFT_NEGATIVE_VALUE)

CHECK_CXX_COMPILER_FLAG("-Wno-expansion-to-defined"
TEXTBOOK_HAVE_WARNING_EXPANSION_TO_DEFINED)


endif()
4 changes: 3 additions & 1 deletion src/config.hpp.in
@@ -1 +1,3 @@
#cmakedefine HAVE_STD_CODECVT 1
#cmakedefine TEXTBOOK_HAVE_STD_CODECVT 1
#cmakedefine TEXTBOOK_HAVE_WARNING_SHIFT_NEGATIVE_VALUE
#cmakedefine TEXTBOOK_HAVE_WARNING_EXPANSION_TO_DEFINED
4 changes: 2 additions & 2 deletions src/utils.cpp
Expand Up @@ -8,7 +8,7 @@

#include "fspp/filesystem.hpp"

#ifdef HAVE_STD_CODECVT
#ifdef TEXTBOOK_HAVE_STD_CODECVT
#include <codecvt>
#else
#include <boost/locale/encoding_utf.hpp>
Expand Down Expand Up @@ -154,7 +154,7 @@ namespace utils {

//------------------------------------------------------------------------------

#ifdef HAVE_STD_CODECVT
#ifdef TEXTBOOK_HAVE_STD_CODECVT
std::u16string utf8_to_u16string(const std::string& str)
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> conv16;
Expand Down
18 changes: 6 additions & 12 deletions third-party/build/chibi-scheme/CMakeLists.txt
@@ -1,18 +1,12 @@
# Copyright (c) 2017 Gregor Klinke
# All rights reserved.

# if(CMAKE_CXX_COMPILER_ID STREQUAL Clang
# OR CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
# set(add_warning_options
# -Wno-shift-negative-value
# )
# elseif(MSVC)
# set(add_warning_options )
# endif()

#configure_file(<input> <output>
# [COPYONLY] [ESCAPE_QUOTES] [@ONLY]
# [NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])
if(TEXTBOOK_HAVE_WARNING_SHIFT_NEGATIVE_VALUE)
set(add_warning_options ${add_warning_options} -Wno-shift-negative-value)
endif()
if(TEXTBOOK_HAVE_WARNING_EXPANSION_TO_DEFINED)
set(add_warning_options ${add_warning_options} -Wno-expansion-to-defined)
endif()

add_definitions(-DSEXP_USE_MODULES=1 -DSEXP_USE_BOEHM=0 -DSEXP_USE_DL=1
-DSEXP_USE_UTF8_STRINGS=1 -DSEXP_USE_KEYWORDS=1 -DSEXP_USE_QUANTITY=1)
Expand Down

0 comments on commit f51d0ce

Please sign in to comment.