diff --git a/Buildscr b/Buildscr index 69cc2d0..29d4e56 100644 --- a/Buildscr +++ b/Buildscr @@ -26,7 +26,11 @@ in puzzles do perl -i -pe 's/Unidentified build/$(Version)/' osx/Info.plist ifneq "$(NOICONS)" yes then # Run enough of a native Unix build to produce the various icons. - in . do cmake -B build-icons puzzles + # This also checks that the build completes in 'strict' mode (with + # lots of warnings and -Werror), and triggers a build failure if + # not. + in . do cmake -B build-icons puzzles -DSTRICT=ON + in build-icons do make -j$(nproc) in build-icons do make -j$(nproc) icons VERBOSE=1 # Copy the C icon files into the icons source subdirectory, for the diff --git a/cmake/platforms/unix.cmake b/cmake/platforms/unix.cmake index b858be8..df95144 100644 --- a/cmake/platforms/unix.cmake +++ b/cmake/platforms/unix.cmake @@ -29,24 +29,9 @@ set(platform_libs -lm) set(build_icons TRUE) -function(try_append_cflag flag) - set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}") - try_compile(compile_passed ${CMAKE_BINARY_DIR} - SOURCES ${CMAKE_SOURCE_DIR}/cmake/testbuild.c - OUTPUT_VARIABLE test_compile_output - CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${GTK_INCLUDE_DIRS}") - if(compile_passed) - set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} PARENT_SCOPE) - endif() -endfunction() -if (CMAKE_C_COMPILER_ID MATCHES "GNU" OR - CMAKE_C_COMPILER_ID MATCHES "Clang") - try_append_cflag(-Wall) - try_append_cflag(-Werror) - try_append_cflag(-std=c89) - try_append_cflag(-pedantic) - try_append_cflag(-Wwrite-strings) +if(DEFINED STRICT AND (CMAKE_C_COMPILER_ID MATCHES "GNU" OR + CMAKE_C_COMPILER_ID MATCHES "Clang")) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wwrite-strings -std=c99 -pedantic -Werror") endif() function(get_platform_puzzle_extra_source_files OUTVAR NAME)