mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-06-30 19:12: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:
@ -87,15 +87,15 @@ add_library(puttygen-common OBJECT
|
||||
${CMAKE_SOURCE_DIR}/sshrand.c)
|
||||
|
||||
add_executable(puttygen
|
||||
${CMAKE_SOURCE_DIR}/cmdgen.c)
|
||||
target_link_libraries(puttygen
|
||||
puttygen-common keygen console crypto utils)
|
||||
${CMAKE_SOURCE_DIR}/cmdgen.c
|
||||
$<TARGET_OBJECTS:puttygen-common>)
|
||||
target_link_libraries(puttygen keygen console crypto utils)
|
||||
installed_program(puttygen)
|
||||
|
||||
add_executable(cgtest
|
||||
${CMAKE_SOURCE_DIR}/cgtest.c)
|
||||
target_link_libraries(cgtest
|
||||
puttygen-common keygen console crypto utils)
|
||||
${CMAKE_SOURCE_DIR}/cgtest.c
|
||||
$<TARGET_OBJECTS:puttygen-common>)
|
||||
target_link_libraries(cgtest keygen console crypto utils)
|
||||
|
||||
add_executable(testsc
|
||||
${CMAKE_SOURCE_DIR}/testsc.c)
|
||||
|
Reference in New Issue
Block a user