Set(GIT_VERSION_WRITER_DIR "${CMAKE_CURRENT_LIST_DIR}")

Macro(GitVersionH SRC)
  # compute the output filename (basename minus trailing .in)
  get_filename_component(OUTPUT "${SRC}" NAME)
  string(REGEX REPLACE "^(.*).in$"
         "\\1" OUTPUT
         ${OUTPUT})

  If(EXISTS "${CMAKE_SOURCE_DIR}/${OUTPUT}" AND NOT EXISTS "${SRC}")
    add_custom_target(VersionH)
  Else()
    add_custom_target(VersionH
      COMMAND ${CMAKE_COMMAND}
          -DIN="${SRC}"
          -DOUT="${OUTPUT}"
          -P "${GIT_VERSION_WRITER_DIR}/GitVersionWriter.txt")
  EndIf()

  include_directories(${CMAKE_BINARY_DIR})
EndMacro()
