mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 11:32:48 -05:00
Compatibility with older versions of cmake.
After this change, the cmake setup now works even on Debian stretch (oldoldstable), which runs cmake 3.7. In order to support a version that early I had to: - write a fallback implementation of 'add_compile_definitions' for older cmakes, which is easy, because add_compile_definitions(FOO) is basically just add_compile_options(-DFOO) - stop using list(TRANSFORM) and string(JOIN), of which I had one case each, and they were easily replaced with simple foreach loops - stop putting OBJECT libraries in the target_link_libraries command for executable targets, in favour of adding $<TARGET_OBJECTS:foo> to the main sources list for the same target. That matches what I do with library targets, so it's probably more sensible anyway. I tried going back by another Debian release and getting this cmake setup to work on jessie, but that runs CMake 3.0.1, and in _that_ version of cmake the target_sources command is missing, and I didn't find any alternative way to add extra sources to a target after having first declared it. Reorganising to cope with _that_ omission would be too much upheaval without a very good reason.
This commit is contained in:
@ -55,9 +55,19 @@ add_custom_target(cmake_commit_c
|
||||
DEPENDS check_git_commit ${INTERMEDIATE_COMMIT_C}
|
||||
COMMENT "Updating cmake_commit.c")
|
||||
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
function(add_compile_definitions)
|
||||
foreach(i ${ARGN})
|
||||
add_compile_options(-D${i})
|
||||
endforeach()
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
function(add_sources_from_current_dir target)
|
||||
set(sources ${ARGN})
|
||||
list(TRANSFORM sources PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
|
||||
set(sources)
|
||||
foreach(i ${ARGN})
|
||||
set(sources ${sources} ${CMAKE_CURRENT_SOURCE_DIR}/${i})
|
||||
endforeach()
|
||||
target_sources(${target} PRIVATE ${sources})
|
||||
endfunction()
|
||||
|
||||
|
Reference in New Issue
Block a user