1- set (DAEMON_BUILDINFO_HEADER "// Automatically generated, do not modify! \n " )
2- set (DAEMON_BUILDINFO_PARENT " ${CMAKE_CURRENT_BINARY_DIR} /GeneratedSource" )
1+ set (DAEMON_GENERATED_DIR " ${CMAKE_CURRENT_BINARY_DIR} /GeneratedSource " )
2+
33set (DAEMON_BUILDINFO_DIR "DaemonBuildInfo" )
4- set (DAEMON_BUILDINFO_DIR_FULLPATH " ${DAEMON_BUILDINFO_PARENT} / ${DAEMON_BUILDINFO_DIR} " )
4+ set (DAEMON_BUILDINFO_HEADER "// Automatically generated, do not modify! \n " )
55set (DAEMON_BUILDINFO_CPP_EXT ".cpp" )
66set (DAEMON_BUILDINFO_H_EXT ".h" )
77set (BUILDINFOLIST)
88
9- file (MAKE_DIRECTORY "${DAEMON_BUILDINFO_DIR_FULLPATH} " )
10- include_directories ("${DAEMON_BUILDINFO_PARENT} " )
9+ file (MAKE_DIRECTORY "${DAEMON_GENERATED_DIR} " )
10+ include_directories ("${DAEMON_GENERATED_DIR} " )
11+
12+ file (MAKE_DIRECTORY "${DAEMON_GENERATED_DIR} /${DAEMON_BUILDINFO_DIR} " )
1113
1214foreach (kind CPP H)
1315 set (DAEMON_BUILDINFO_${kind} "${DAEMON_BUILDINFO_HEADER} " )
@@ -18,20 +20,25 @@ macro(daemon_add_buildinfo TYPE NAME VALUE)
1820 set (DAEMON_BUILDINFO_H "${DAEMON_BUILDINFO_H} extern const ${TYPE} ${NAME} ;\n " )
1921endmacro ()
2022
23+ macro (daemon_write_generated GENERATED_PATH GENERATED_CONTENT)
24+ set (DAEMON_GENERATED_FILE ${DAEMON_GENERATED_DIR} /${GENERATED_PATH} )
25+
26+ if (EXISTS "${DAEMON_GENERATED_FILE} " )
27+ file (READ "${DAEMON_GENERATED_FILE} " GENERATED_CONTENT_READ)
28+ endif ()
29+
30+ if (NOT "${GENERATED_CONTENT} " STREQUAL "${GENERATED_CONTENT_READ} " )
31+ message (STATUS "Generating ${GENERATED_PATH} " )
32+ file (WRITE "${DAEMON_GENERATED_FILE} " "${GENERATED_CONTENT} " )
33+ endif ()
34+ endmacro ()
35+
2136macro (daemon_write_buildinfo NAME )
2237 foreach (kind CPP H)
2338 set (DAEMON_BUILDINFO_${kind} _NAME "${NAME} ${DAEMON_BUILDINFO_${kind} _EXT}" )
24- set (DAEMON_BUILDINFO_${kind} _FILE "${DAEMON_BUILDINFO_DIR} /${DAEMON_BUILDINFO_${kind} _NAME}" )
25- set (DAEMON_BUILDINFO_${kind} _FILE_FULLPATH "${DAEMON_BUILDINFO_PARENT} /${DAEMON_BUILDINFO_${kind} _FILE}" )
26- list (APPEND BUILDINFOLIST "${DAEMON_BUILDINFO_${kind} _FILE_FULLPATH}" )
27-
28- if (EXISTS "${DAEMON_BUILDINFO_${kind} _FILE_FULLPATH}" )
29- file (READ "${DAEMON_BUILDINFO_${kind} _FILE_FULLPATH}" DAEMON_BUILDINFO_${kind} _READ)
30- endif ()
31-
32- if (NOT "${DAEMON_BUILDINFO_${kind} }" STREQUAL "${DAEMON_BUILDINFO_${kind} _READ}" )
33- message (STATUS "Generating ${DAEMON_BUILDINFO_${kind} _FILE}" )
34- file (WRITE "${DAEMON_BUILDINFO_${kind} _FILE_FULLPATH}" "${DAEMON_BUILDINFO_${kind} }" )
35- endif ()
39+ set (DAEMON_BUILDINFO_${kind} _PATH "${DAEMON_BUILDINFO_DIR} /${DAEMON_BUILDINFO_${kind} _NAME}" )
40+
41+ daemon_write_generated("${DAEMON_BUILDINFO_${kind} _PATH}" "${DAEMON_BUILDINFO_${kind} }" )
42+ list (APPEND BUILDINFOLIST "${DAEMON_GENERATED_FILE} " )
3643 endforeach ()
3744endmacro ()
0 commit comments