diff --git a/.gitignore b/.gitignore index f19541928..4f117cc87 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ apidocs build minsize +fastdev diff --git a/.travis.yml b/.travis.yml index 46a8e3eb3..59ac0d69e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,8 +21,8 @@ before_script: - sleep 3 script: - mkdir build && cd build - - if [ "$CXX" == "clang++" ];then cmake ../ -GNinja -DENABLE_TESTING=TRUE -DKATIE_UTILS=ON -Wno-dev ;fi - - if [ "$CXX" == "g++" ];then cmake ../ -GNinja -DENABLE_TESTING=TRUE -DKATIE_UTILS=ON -DKATIE_ALLINONE=ON -Wno-dev ;fi + - if [ "$CXX" == "clang++" ];then cmake ../ -GNinja -DCMAKE_BUILD_TYPE=FastDev -DENABLE_TESTING=TRUE -DKATIE_UTILS=ON -Wno-dev ;fi + - if [ "$CXX" == "g++" ];then cmake ../ -GNinja -DCMAKE_BUILD_TYPE=FastDev -DENABLE_TESTING=TRUE -DKATIE_UTILS=ON -DKATIE_ALLINONE=ON -Wno-dev ;fi - ninja # the tests/benchmarks take more then 1-hour and Travis times out, # despite the documentaiton for the service claiming otherwise diff --git a/CMakeLists.txt b/CMakeLists.txt index 299a305bb..091901912 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,12 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo) endif() +# custom build type - speed up builds and show some additional warnings +if(CMAKE_BUILD_TYPE STREQUAL "FastDev") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -Wall") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -Wall") +endif() + set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules") set(CMAKE_AUTOMOC FALSE) set(CMAKE_AUTOUIC FALSE) @@ -41,7 +47,7 @@ set(CPACK_PACKAGE_VERSION_MAJOR "4") set(CPACK_PACKAGE_VERSION_MINOR "9") set(CPACK_PACKAGE_VERSION_PATCH "0") set(CPACK_SET_DESTDIR TRUE) -set(CPACK_SOURCE_IGNORE_FILES "/build/;/minsize/;/apidocs/;/.git;${CPACK_SOURCE_IGNORE_FILES}") +set(CPACK_SOURCE_IGNORE_FILES "/build/;/minsize/;/fastdev/;/apidocs/;/.git;${CPACK_SOURCE_IGNORE_FILES}") set(CPACK_STRIP_FILES TRUE) if(NOT CMAKE_VERSION VERSION_LESS "3.1.0") set(CPACK_GENERATOR "TXZ") diff --git a/mkspecs/mkspecs.cmake b/mkspecs/mkspecs.cmake index e3b553e35..5d90f4c98 100644 --- a/mkspecs/mkspecs.cmake +++ b/mkspecs/mkspecs.cmake @@ -74,7 +74,7 @@ endif() # also affected, which KDE uses for visibility check for an example if(KATIE_COMPILER STREQUAL "gcc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") - # TODO: set CMAKE_CXX_EXTENSIONS to OFF? + # TODO: set CMAKE_CXX_EXTENSIONS to OFF so it does not append the flag again? elseif(KATIE_COMPILER STREQUAL "clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") endif() diff --git a/scripts/fastdev.sh b/scripts/fastdev.sh new file mode 100755 index 000000000..7068e7830 --- /dev/null +++ b/scripts/fastdev.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +cwd="$(dirname $0)" + +rm -rf "$cwd/../fastdev" +mkdir -p "$cwd/../fastdev" +cd "$cwd/../fastdev" + +cmake ../ -DCMAKE_BUILD_TYPE=FastDev -DCMAKE_INSTALL_PREFIX=/usr $@ +make -j$(nproc) diff --git a/scripts/minsize.sh b/scripts/minsize.sh index f195ae0fe..61812adb3 100755 --- a/scripts/minsize.sh +++ b/scripts/minsize.sh @@ -4,6 +4,7 @@ set -e cwd="$(dirname $0)" +rm -rf "$cwd/../minsize" mkdir -p "$cwd/../minsize" cd "$cwd/../minsize"