CMake: generate SkUserConfig.h with configure_file

1)  It's simpler.
  2)  It should cache correctly (and not trigger total rebuilds everytime we re-run CMake.)

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1544493002
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1544493002
This commit is contained in:
mtklein 2016-01-05 08:32:32 -08:00 committed by Commit bot
parent 3323b05be5
commit 014f06b726
2 changed files with 18 additions and 13 deletions

View File

@ -216,6 +216,7 @@ if (OSMESA_LIBRARIES AND OSMESA_INCLUDE_DIRS)
list (APPEND libs ${OSMESA_LIBRARIES})
list (APPEND private_includes ${OSMESA_INCLUDE_DIRS})
list (APPEND public_defines "-DSK_MESA=1")
set (SK_MESA 1)
else()
remove_srcs(../src/gpu/gl/mesa/*)
endif()
@ -261,21 +262,10 @@ install(FILES ${c_headers} DESTINATION include)
install(TARGETS skia DESTINATION lib)
# SkUserConfig.h
set (userconfig_path ${userconfig_directory}/SkUserConfig.h)
file(WRITE ${userconfig_path} "// SkUserConfig generated by CMake.\n")
file(APPEND ${userconfig_path} "#ifndef SkUserConfig_DEFINED\n")
file(APPEND ${userconfig_path} "#define SkUserConfig_DEFINED\n")
if (CMAKE_BUILD_TYPE STREQUAL Release)
file(APPEND ${userconfig_path} "#define SK_RELEASE\n")
file(APPEND ${userconfig_path} "#undef SK_DEBUG\n")
else ()
file(APPEND ${userconfig_path} "#define SK_DEBUG\n")
file(APPEND ${userconfig_path} "#undef SK_RELEASE\n")
endif ()
if (OSMESA_LIBRARIES AND OSMESA_INCLUDE_DIRS)
file (APPEND ${userconfig_path} "#define SK_MESA 1\n")
set (SK_RELEASE 1)
endif()
file(APPEND ${userconfig_path} "#endif // SkUserConfig_DEFINED\n")
configure_file ("SkUserConfig.h.in" "${userconfig_directory}/SkUserConfig.h")
# skia_link_arguments.txt
set (link_arguments ${CMAKE_BINARY_DIR}/skia_link_arguments.txt)

15
cmake/SkUserConfig.h.in Normal file
View File

@ -0,0 +1,15 @@
// SkUserConfig generated by CMake.
#ifndef SkUserConfig_DEFINED
#define SkUserConfig_DEFINED
#if ${SK_RELEASE}
#define SK_RELEASE
#undef SK_DEBUG
#else
#define SK_DEBUG
#undef SK_RELEASE
#endif
#cmakedefine01 SK_MESA
#endif