Skip to content

Commit dcd4ea5

Browse files
committed
Make project reconfiguration easier
Update existing definitions header automatically instead of prompting the user to remove it.
1 parent 199880b commit dcd4ea5

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

cmake/modules/LibraryTarget.cmake

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,11 @@ append_user_defined_additional_libraries()
125125
option(USE_HEADER_FOR_PUBLIC_COMPILE_DEFINITIONS "writes public compile definitions to a header file" ON)
126126
set(TARGET_GENERATED_INCLUDE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
127127
set(TARGET_DEFINITIONS_HEADER "${TARGET_GENERATED_INCLUDE_DIRECTORY}/${META_PROJECT_NAME}-definitions.h")
128-
if (EXISTS "${TARGET_DEFINITIONS_HEADER}")
129-
message(STATUS "Using existing \"${TARGET_DEFINITIONS_HEADER}\" for ${META_PROJECT_NAME}. "
130-
"Remove this file to force re-generation of the resource file.")
131-
elseif (USE_HEADER_FOR_PUBLIC_COMPILE_DEFINITIONS)
128+
if (USE_HEADER_FOR_PUBLIC_COMPILE_DEFINITIONS)
129+
set(EXISTING_DEFS_FOR_HEADER "none")
130+
if (EXISTS "${TARGET_DEFINITIONS_HEADER}")
131+
file(READ "${TARGET_DEFINITIONS_HEADER}" EXISTING_DEFS_FOR_HEADER)
132+
endif ()
132133
set(DEFS_FOR_HEADER "")
133134
foreach (DEF ${META_PUBLIC_COMPILE_DEFINITIONS})
134135
if (DEF MATCHES "([A-Za-z0-9_]+)=([A-Za-z0-9_ ]+)")
@@ -142,7 +143,11 @@ elseif (USE_HEADER_FOR_PUBLIC_COMPILE_DEFINITIONS)
142143
set(DEFS_FOR_HEADER "${DEFS_FOR_HEADER}#ifndef ${DEF_NAME}\n#define ${DEF_NAME}${DEF_VALUE}\n#endif\n")
143144
endif ()
144145
endforeach ()
145-
file(WRITE "${TARGET_DEFINITIONS_HEADER}" "${DEFS_FOR_HEADER}")
146+
if (NOT "${DEFS_FOR_HEADER}" STREQUAL "${EXISTING_DEFS_FOR_HEADER}")
147+
file(WRITE "${TARGET_DEFINITIONS_HEADER}" "${DEFS_FOR_HEADER}")
148+
else ()
149+
message(STATUS "Header \"${TARGET_DEFINITIONS_HEADER}\" for ${META_PROJECT_NAME} did not change.")
150+
endif ()
146151
endif ()
147152

148153
# add library to be created, set libs to link against, set version and C++ standard

0 commit comments

Comments
 (0)