Blame view

application.cmake 1.35 KB
772ec5a4   Peter M. Groen   Added cmake envir...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  # @brief Adds an executable target and performs related actions,
  # such as verioning, binary dir and configuration.
  # @note The default binary directory is PROJECT_BINARY_DIR, but can be overridden by specifying the ${PROJECT_NAME}_CURRENT_BINARY_DIR.
  function(add_application)
  
  message( STATUS "${PROJECT_NAME} linking libraries : ${ARGN}")
  
  # Use PROJECT_BINARY_DIR by default, but override if necessary.
  set(CURRENT_PROJECT_BINARY_DIR ${PROJECT_BINARY_DIR})
  if (${PROJECT_NAME}_CURRENT_BINARY_DIR)
      set(CURRENT_PROJECT_BINARY_DIR ${${PROJECT_NAME}_CURRENT_BINARY_DIR})
  endif()
  message(STATUS "CURRENT_PROJECT_BINARY_DIR : ${CURRENT_PROJECT_BINARY_DIR}")
  
  include_directories(${HSOA_VERSION_INCLUDE_DIR})
  
  add_executable( ${PROJECT_NAME}
      ${HSOA_VERSION_SRC_FILE}
      ${SRC_LIST}
  )
  
  target_link_libraries( ${PROJECT_NAME}
      ${ARGN}
  )
  
  set_target_properties( ${PROJECT_NAME}
      PROPERTIES
          VERSION ${PROJECT_VERSION}
          RUNTIME_OUTPUT_DIRECTORY ${CURRENT_PROJECT_BINARY_DIR}/bin
  )
  
  # Copy the testconfig to the build dir, so the binaries are testable from the build dir.
  # The created packages will not contain the testconfig but the production config instead. See installation.cmake.
  if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/testconfig/)
      file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/testconfig/" DESTINATION "${CURRENT_PROJECT_BINARY_DIR}/etc")
  endif()
  
  endfunction()