From f40d7d2b6d90ff73d4340b06953210b79b0651e4 Mon Sep 17 00:00:00 2001 From: David Capello Date: Thu, 9 Jun 2016 10:55:52 +0200 Subject: [PATCH] [cmake] Avoid modifying `ftconfig.h' and `ftoption.h' files. * CMakeLists.txt: Each time cmake is run those files are modified and the whole FreeType library is recompiled. With this change we change the files only if there are real modifications, so we can avoid recompilations. --- CMakeLists.txt | 12 +++++++++--- ChangeLog | 9 +++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87a68c0f2..3b36efe96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -215,14 +215,17 @@ if (UNIX) endif () string(REPLACE "/undef " "#undef " FTCONFIG_H "${FTCONFIG_H}") - file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h" + file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new" "${FTCONFIG_H}") else () file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h" FTCONFIG_H) - file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h" + file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new" "${FTCONFIG_H}") endif () +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new" + "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h") # Create the options file @@ -251,8 +254,11 @@ if (HARFBUZZ_FOUND) "/\\* +(#define +FT_CONFIG_OPTION_USE_HARFBUZZ) +\\*/" "\\1" FTOPTION_H "${FTOPTION_H}") endif () -file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h" +file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h-new" "${FTOPTION_H}") +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h-new" + "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h") # Specify library include directories diff --git a/ChangeLog b/ChangeLog index 5c9ec1374..8b2afe8a2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2016-06-09 David Capello + + [cmake] Avoid modifying `ftconfig.h' and `ftoption.h' files. + + * CMakeLists.txt: Each time cmake is run those files are + modified and the whole FreeType library is recompiled. With this + change we change the files only if there are real modifications, so + we can avoid recompilations. + 2016-06-09 Werner Lemberg [bdf] Check number of properties (#48166).