cmake_minimum_required(VERSION 2.8)
project (versioning CXX)

set (TARGET test_program)
set (SOURCES main.cpp)

add_executable (${TARGET} ${SOURCES})

set (maintenance_date_obj ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_version${CMAKE_CXX_OUTPUT_EXTENSION})
set (MAINTENANCE_DATE_OBJECT "${maintenance_date_obj}")

find_package(TCL QUIET)
if(NOT TCL_TCLSH)
    message ("WARNING: Could not generate maintenance date for ${TARGET}: Tcl not found")
    return()
endif()

add_custom_command (
    TARGET ${TARGET}
    PRE_LINK
    COMMAND ${TCL_TCLSH} "${CMAKE_CURRENT_SOURCE_DIR}/versioning.tcl"
    ${TARGET} ${maintenance_date_obj}
)

set (custom_link_flags)

# Add MAINTENANCE_DATE_OBJECT in link flags
#------------------------------------------
if (DEFINED MAINTENANCE_DATE_OBJECT)
    set (custom_link_flags "${custom_link_flags} ${MAINTENANCE_DATE_OBJECT}")
endif ()

# Set the custom link flags
#---------------------------
if (NOT "${custom_link_flags}" STREQUAL "" )
    message ("Additional link propery: ${custom_link_flags}")
    set_target_properties (${TARGET} PROPERTIES LINK_FLAGS "${custom_link_flags}")
endif ()