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

15 16
project(dtkWidgets VERSION ${dtkWidgets_VERSION})

17 18 19 20 21
## #################################################################
## Sources
## #################################################################

set(${PROJECT_NAME}_HEADERS
22
  dtkApplication.h
23
  dtkWidgets
24
  dtkWidgets.h
25 26 27 28 29 30 31 32
  dtkWidgetsColorButton
  dtkWidgetsColorButton.h
  dtkWidgetsController
  dtkWidgetsController.h
  dtkWidgetsLayout
  dtkWidgetsLayout.h
  dtkWidgetsLayoutItem
  dtkWidgetsLayoutItem.h
33
  dtkWidgetsLayoutItem_p.h
Julien Wintz's avatar
Julien Wintz committed
34 35 36 37
  dtkWidgetsLayoutReader
  dtkWidgetsLayoutReader.h
  dtkWidgetsLayoutWriter
  dtkWidgetsLayoutWriter.h
38 39 40 41 42 43 44 45 46 47
  dtkWidgetsList
  dtkWidgetsList.h
  dtkWidgetsListControl
  dtkWidgetsListControl.h
  dtkWidgetsHUD
  dtkWidgetsHUD.h
  dtkWidgetsHUDInfo
  dtkWidgetsHUDInfo.h
  dtkWidgetsHUDItem
  dtkWidgetsHUDItem.h
48 49
  dtkWidgetsManager
  dtkWidgetsManager.h
50 51
  dtkWidgetsOverlayPane
  dtkWidgetsOverlayPane.h
52
  dtkWidgetsOverlayPane_p.h
53 54
  dtkWidgetsOverlayPaneItem
  dtkWidgetsOverlayPaneItem.h
CABEL Tristan's avatar
CABEL Tristan committed
55 56
  dtkWidgetsOverlayPaneManager
  dtkWidgetsOverlayPaneManager.h
57 58
  dtkWidgetsOverlayPaneSlider
  dtkWidgetsOverlayPaneSlider.h
59 60
  dtkWidgetsOverlayRope
  dtkWidgetsOverlayRope.h
61 62
  dtkWidgetsParameter
  dtkWidgetsParameter.h
63 64
  dtkWidgetsParameterFactory
  dtkWidgetsParameterFactory.h
65 66
  dtkWidgetsSettings
  dtkWidgetsSettings.h
67 68
  dtkWidgetsStylesheetParser
  dtkWidgetsStylesheetParser.h
69 70 71 72
  dtkWidgetsWidget
  dtkWidgetsWidget.h)

set(${PROJECT_NAME}_SOURCES
73
  dtkApplication.cpp
74
  dtkWidgets.cpp
75 76 77 78
  dtkWidgetsColorButton.cpp
  dtkWidgetsController.cpp
  dtkWidgetsLayout.cpp
  dtkWidgetsLayoutItem.cpp
Julien Wintz's avatar
Julien Wintz committed
79 80
  dtkWidgetsLayoutReader.cpp
  dtkWidgetsLayoutWriter.cpp
81 82 83 84 85
  dtkWidgetsList.cpp
  dtkWidgetsListControl.cpp
  dtkWidgetsHUD.cpp
  dtkWidgetsHUDInfo.cpp
  dtkWidgetsHUDItem.cpp
86
  dtkWidgetsManager.cpp
87 88
  dtkWidgetsOverlayPane.cpp
  dtkWidgetsOverlayPaneItem.cpp
CABEL Tristan's avatar
CABEL Tristan committed
89
  dtkWidgetsOverlayPaneManager.cpp
90
  dtkWidgetsOverlayPaneSlider.cpp
91
  dtkWidgetsOverlayRope.cpp
92
  dtkWidgetsParameter.cpp
93
  dtkWidgetsParameterFactory.cpp
94
  dtkWidgetsSettings.cpp
95
  dtkWidgetsStylesheetParser.cpp
96 97 98 99 100 101 102 103 104 105 106
  dtkWidgetsWidget.cpp)

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

add_library(${PROJECT_NAME} SHARED
  ${${PROJECT_NAME}_SOURCES}
  ${${PROJECT_NAME}_HEADERS})

target_link_libraries(${PROJECT_NAME} Qt5::Core)
107
target_link_libraries(${PROJECT_NAME} Qt5::WebSockets)
108
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
Julien Wintz's avatar
Julien Wintz committed
109
target_link_libraries(${PROJECT_NAME} Qt5::Xml)
110

111
target_link_libraries(${PROJECT_NAME} dtkCore)
Julien Wintz's avatar
Julien Wintz committed
112
target_link_libraries(${PROJECT_NAME} dtkFonts)
113
target_link_libraries(${PROJECT_NAME} dtkLog)
114

NICLAUSSE Nicolas's avatar
NICLAUSSE Nicolas committed
115 116 117
## #################################################################
## Target properties
## #################################################################
NICLAUSSE Nicolas's avatar
NICLAUSSE Nicolas committed
118

NICLAUSSE Nicolas's avatar
NICLAUSSE Nicolas committed
119 120 121
set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_RPATH 0)
set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH    "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
122 123
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION   ${${PROJECT_NAME}_VERSION}
                                                 SOVERSION ${${PROJECT_NAME}_VERSION_MAJOR})
NICLAUSSE Nicolas's avatar
NICLAUSSE Nicolas committed
124

125 126 127 128 129 130 131 132 133 134 135 136
## #################################################################
## Export header file
## #################################################################

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

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

137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
## ###################################################################
## Config file
## ###################################################################

configure_file(
  "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.h.in"
  "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.h")

configure_file(
  "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.h.in"
  "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config")

set(${PROJECT_NAME}_HEADERS
  ${${PROJECT_NAME}_HEADERS}
  "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.h")

153 154 155 156 157 158 159 160 161 162 163 164 165
## ###################################################################
## Install rules - files
## ###################################################################

install(FILES ${${PROJECT_NAME}_HEADERS}
  DESTINATION include/${PROJECT_NAME}
    COMPONENT widgets)

## ###################################################################
## Install rules - targets
## ###################################################################

install(TARGETS ${PROJECT_NAME}
NICLAUSSE Nicolas's avatar
NICLAUSSE Nicolas committed
166 167 168 169 170
  EXPORT ${PROJECT_NAME}Depends
  RUNTIME DESTINATION bin
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
          COMPONENT   widgets)
171 172 173

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