diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ef91ea7a..07f397a3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,9 +147,6 @@ add_feature_info(benchmarks KATIE_BENCHMARKS "build automatic benchmarks") option(KATIE_UTILS "Build maintainance utilities" OFF) add_feature_info(utils KATIE_UTILS "build maintainance utilities") -option(KATIE_ALLINONE "Build targets from single source file" OFF) -add_feature_info(allinone KATIE_ALLINONE "build targets from single source file") - option(KATIE_PCH "Build components with pre-compiled header" OFF) add_feature_info(pch KATIE_PCH "build components with pre-compiled header") diff --git a/appveyor.yml b/appveyor.yml index 8fe7fecde..f0d9c7a87 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -18,7 +18,7 @@ build_script: export CXXFLAGS="$CXXFLAGS -w" - cmake . -Wno-dev -DKATIE_TESTS=ON -DKATIE_BENCHMARKS=ON -DKATIE_UTILS=ON -DKATIE_ALLINONE=ON -DKATIE_PCH=ON + cmake . -Wno-dev -DKATIE_TESTS=ON -DKATIE_BENCHMARKS=ON -DKATIE_UTILS=ON -DKATIE_PCH=ON -DCMAKE_UNITY_BUILD=ON make -j $(nproc || echo 1) diff --git a/cmake/modules/KatieBuildMacros.cmake b/cmake/modules/KatieBuildMacros.cmake index 659f77f17..212448c5d 100644 --- a/cmake/modules/KatieBuildMacros.cmake +++ b/cmake/modules/KatieBuildMacros.cmake @@ -203,10 +203,9 @@ function(KATIE_STRING_UNWRAP INSTR OUTLST) endif() endfunction() -# a macro to instruct katie_setup_target() which sources to exclude from the -# all-in-one source file +# a macro to instruct CMake which sources to exclude from the unity source file macro(KATIE_ALLINONE_EXCLUDE ARG1) - set_source_files_properties(${ARG1} ${ARGN} PROPERTIES ALLINONE_EXCLUDE TRUE) + set_source_files_properties(${ARG1} ${ARGN} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE) endmacro() # a function to create an array of source files for a target while taking into @@ -227,6 +226,7 @@ function(KATIE_SETUP_TARGET FORTARGET) # this can be simpler if continue() was supported by old CMake versions set(resourcesdep "${CMAKE_CURRENT_BINARY_DIR}/${FORTARGET}_resources.cpp") katie_write_file("${resourcesdep}" "enum { CompilersWorkaroundAlaAutomoc = 1 };\n") + set(filteredsources) set(targetresources) set(rscpath "${CMAKE_CURRENT_BINARY_DIR}/${FORTARGET}_resources") include_directories("${rscpath}") @@ -252,7 +252,8 @@ function(KATIE_SETUP_TARGET FORTARGET) DEPENDS "${KATIE_RCC}" OUTPUT "${rscout}" ) - elseif("${rscext}" MATCHES "(.h|.hpp|.cc|.cpp)") + elseif("${rscext}" MATCHES "(.c|.h|.hpp|.cc|.cpp)") + set(filteredsources ${filteredsources} "${resource}") file(READ "${resource}" rsccontent) if("${rsccontent}" MATCHES "(Q_OBJECT|Q_OBJECT_FAKE|Q_GADGET)") set(rscout "${rscpath}/moc_${rscname}${rscext}") @@ -268,31 +269,7 @@ function(KATIE_SETUP_TARGET FORTARGET) endforeach() set_property(SOURCE "${resourcesdep}" APPEND PROPERTY OBJECT_DEPENDS "${targetresources}") - if(NOT KATIE_ALLINONE) - set(filteredsources) - foreach(srcstring ${ARGN}) - get_filename_component(srcext "${srcstring}" EXT) - if(NOT "${srcext}" MATCHES "(.qrc|.ui)") - set(filteredsources ${filteredsources} "${srcstring}") - endif() - endforeach() - set(${FORTARGET}_SOURCES "${resourcesdep}" ${filteredsources} PARENT_SCOPE) - else() - set(allinonesource "${CMAKE_CURRENT_BINARY_DIR}/${FORTARGET}_allinone.cpp") - set(allinonedata) - set(excludesources) - foreach(srcstring ${ARGN}) - get_filename_component(srcext "${srcstring}" EXT) - get_source_file_property(skip "${srcstring}" ALLINONE_EXCLUDE) - if(skip OR "${srcext}" STREQUAL ".c") - set(excludesources ${excludesources} "${srcstring}") - elseif(NOT "${srcext}" MATCHES "(.h|.qrc|.ui)") - set(allinonedata "${allinonedata}#include \"${srcstring}\"\n") - endif() - endforeach() - katie_write_file("${allinonesource}" "${allinonedata}") - set(${FORTARGET}_SOURCES ${resourcesdep} "${allinonesource}" ${excludesources} PARENT_SCOPE) - endif() + set(${FORTARGET}_SOURCES "${resourcesdep}" ${filteredsources} PARENT_SCOPE) endfunction() # a macro to ensure that object targets are build with PIC if the target they diff --git a/package/archlinux/PKGBUILD b/package/archlinux/PKGBUILD index 3262c150e..2a50357a4 100644 --- a/package/archlinux/PKGBUILD +++ b/package/archlinux/PKGBUILD @@ -35,8 +35,7 @@ build() { -DCMAKE_INSTALL_PREFIX=/usr \ -DKATIE_LDCONF_PATH=/etc/ld.so.conf.d \ -DKATIE_PROFILE_PATH=/etc/profile.d \ - -DKATIE_TOOLS_SUFFIX="-katie" \ - -DKATIE_ALLINONE=ON + -DKATIE_TOOLS_SUFFIX="-katie" make } diff --git a/scripts/oldmake.sh b/scripts/oldmake.sh index 7c419c1b4..e986502be 100755 --- a/scripts/oldmake.sh +++ b/scripts/oldmake.sh @@ -22,15 +22,7 @@ tar -xaf "$cwd/$cmake.$cmakeext" "$cmake/bin/cmake" ../ -DKATIE_TESTS=ON -DKATIE_BENCHMARKS=ON -DKATIE_UTILS=ON $@ rm -rf * -tar -xaf "$cwd/$cmake.$cmakeext" -"$cmake/bin/cmake" ../ -DKATIE_TESTS=ON -DKATIE_BENCHMARKS=ON -DKATIE_UTILS=ON -DKATIE_ALLINONE=ON $@ -rm -rf * - tar -xaf "$cwd/$cmake.$cmakeext" "$cmake/bin/cmake" ../ -GNinja -DKATIE_TESTS=ON -DKATIE_BENCHMARKS=ON -DKATIE_UTILS=ON $@ ninja -n rm -rf * - -tar -xaf "$cwd/$cmake.$cmakeext" -"$cmake/bin/cmake" ../ -GNinja -DKATIE_TESTS=ON -DKATIE_BENCHMARKS=ON -DKATIE_UTILS=ON -DKATIE_ALLINONE=ON $@ -ninja -n