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).