CMakeLists.txt 3.1 KB
Newer Older
1 2
## Version: $Id$
##
3
######################################################################
4 5 6 7 8
##
### Commentary:
##
######################################################################
##
9
### Change Log:
10
##
11
######################################################################
12 13
##
### Code:
14 15 16 17

project(dtkLog)

## #################################################################
Julien Wintz's avatar
Julien Wintz committed
18
## Sources
19 20 21
## #################################################################

set(${PROJECT_NAME}_HEADERS
NICLAUSSE Nicolas's avatar
NICLAUSSE Nicolas committed
22
  dtkLog
Julien Wintz's avatar
Julien Wintz committed
23 24 25 26
  dtkLog.h
  dtkLogger.h
  dtkLogger_p.h
  dtkLogEngine.h
27 28
  dtkLogDestination.h
  dtkLogModel.h)
29 30

set(${PROJECT_NAME}_SOURCES
Julien Wintz's avatar
Julien Wintz committed
31 32 33
  dtkLog.cpp
  dtkLogger.cpp
  dtkLogEngine.cpp
34 35
  dtkLogDestination.cpp
  dtkLogModel.cpp)
36 37 38 39 40

## #################################################################
## Build rules
## #################################################################

41
add_library(${PROJECT_NAME} SHARED
42
  ${${PROJECT_NAME}_SOURCES}
43
  ${${PROJECT_NAME}_HEADERS})
Julien Wintz's avatar
Julien Wintz committed
44

45
target_link_libraries(${PROJECT_NAME} Qt5::Core)
Julien Wintz's avatar
Julien Wintz committed
46 47 48 49

## #################################################################
## Target properties
## #################################################################
50

51 52
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden)
set_target_properties(${PROJECT_NAME} PROPERTIES VISIBILITY_INLINES_HIDDEN 1)
53 54
set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_RPATH 0)
set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
Julien Wintz's avatar
Julien Wintz committed
55
set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH    "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
56 57
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION   ${dtk_VERSION}
                                                 SOVERSION ${dtk_VERSION_MAJOR})
58

59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
## #################################################################
## Export header file
## #################################################################

generate_export_header(${PROJECT_NAME}
  EXPORT_FILE_NAME "${PROJECT_NAME}Export.h")

add_custom_command(TARGET ${PROJECT_NAME} PRE_BUILD
  COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different "${${PROJECT_NAME}_BINARY_DIR}/${PROJECT_NAME}Export.h" "${CMAKE_BINARY_DIR}"
  COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different "${${PROJECT_NAME}_BINARY_DIR}/${PROJECT_NAME}Export.h" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Export")

set(${PROJECT_NAME}_HEADERS
  ${${PROJECT_NAME}_HEADERS}
 "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Export"
 "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Export.h")

75 76 77
## ###################################################################
## Install rules - files
## ###################################################################
78

79 80 81
install(FILES ${${PROJECT_NAME}_HEADERS}
  DESTINATION include/${PROJECT_NAME}
    COMPONENT log)
82

83 84 85
## ###################################################################
## Install rules - targets
## ###################################################################
86 87

install(TARGETS ${PROJECT_NAME}
NICLAUSSE Nicolas's avatar
NICLAUSSE Nicolas committed
88
    DESTINATION ${CMAKE_INSTALL_LIBDIR}
89 90
      COMPONENT log
         EXPORT dtkDepends)
91 92 93

######################################################################
### CMakeLists.txt ends here