File: CMakeLists.txt

package info (click to toggle)
oxygen 4:5.8.4-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 25,856 kB
  • ctags: 2,619
  • sloc: cpp: 21,895; python: 39; makefile: 20; sh: 13
file content (150 lines) | stat: -rw-r--r-- 5,065 bytes parent folder | download
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
add_definitions(-DTRANSLATION_DOMAIN=\"liboxygenstyleconfig\")

################# configuration #################
configure_file(config-liboxygen.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-liboxygen.h)

################# liboxygenstyle #################
set(oxygenstyle_LIB_SRCS
    oxygenanimation.cpp
    oxygenhelper.cpp
    oxygenitemmodel.cpp
    oxygenshadowcache.cpp
    oxygentileset.cpp)

if(OXYGEN_USE_KDE4)

  kde4_add_kcfg_files(oxygenstyle_LIB_SRCS
    oxygenactiveshadowconfiguration.kcfgc
    oxygeninactiveshadowconfiguration.kcfgc
 )

  kde4_add_library(oxygenstyle SHARED ${oxygenstyle_LIB_SRCS})

  generate_export_header(oxygenstyle BASE_NAME oxygen EXPORT_FILE_NAME oxygen_export.h)

  target_link_libraries(oxygenstyle ${KDE4_KDEUI_LIBS})

  if(OXYGEN_HAVE_X11)
    target_link_libraries(oxygenstyle ${X11_XCB_LIBRARIES})
    target_link_libraries(oxygenstyle ${XCB_LIBRARIES})
  endif()

  set_target_properties(oxygenstyle PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})

 if(WIN32)
      # As stated in http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx M_PI only gets defined
      # when using MSVC if _USE_MATH_DEFINES is defined (this is needed for angle.cpp)
      target_compile_definitions(oxygenstyle PRIVATE _USE_MATH_DEFINES _GNU_SOURCE)
  endif()
  install(TARGETS oxygenstyle ${INSTALL_TARGETS_DEFAULT_ARGS})

else()

  kconfig_add_kcfg_files(oxygenstyle_LIB_SRCS
    oxygenactiveshadowconfiguration.kcfgc
    oxygeninactiveshadowconfiguration.kcfgc
 )

  add_library(oxygenstyle5 ${oxygenstyle_LIB_SRCS})

  generate_export_header(oxygenstyle5 BASE_NAME oxygen EXPORT_FILE_NAME oxygen_export.h)

  # NB: although we install no headers, we still need to have a link
  #     interface, since other Oxygen targets link to this library
  target_link_libraries(oxygenstyle5
      PUBLIC
          Qt5::Core
          Qt5::Gui
          Qt5::Widgets
          KF5::ConfigCore
          KF5::ConfigWidgets
      PRIVATE
          KF5::GuiAddons
 )

  target_include_directories(oxygenstyle5 PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")

  if(OXYGEN_HAVE_X11)
      target_link_libraries(oxygenstyle5 PRIVATE XCB::XCB Qt5::X11Extras)
  endif()

  set_target_properties(oxygenstyle5 PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
  if(WIN32)
      # As stated in http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx M_PI only gets defined
      # when using MSVC if _USE_MATH_DEFINES is defined (this is needed for angle.cpp)
      target_compile_definitions(oxygenstyle5 PRIVATE _USE_MATH_DEFINES _GNU_SOURCE)
  endif()
  install(TARGETS oxygenstyle5 ${INSTALL_TARGETS_DEFAULT_ARGS})

endif()

################# liboxygenstyleconfig #################
set(oxygenstyleconfig_LIB_SRCS
    oxygenanimationconfigitem.cpp
    oxygenbaseanimationconfigwidget.cpp
    oxygengenericanimationconfigitem.cpp
    oxygenshadowconfigwidget.cpp
)

set(oxygenstyleconfig_LIB_FORMS
    ui/oxygenanimationconfigitem.ui
    ui/oxygenanimationconfigwidget.ui
    ui/oxygengenericanimationconfigbox.ui
    ui/oxygenshadowconfigurationui.ui
)

if(OXYGEN_USE_KDE4)

  kde4_add_ui_files(oxygenstyleconfig_LIB_FORMS_HEADERS ${oxygenstyleconfig_LIB_FORMS})
  kde4_add_kcfg_files(oxygenstyleconfig_LIB_SRCS
      oxygenactiveshadowconfiguration.kcfgc
      oxygeninactiveshadowconfiguration.kcfgc
 )

  kde4_add_library(oxygenstyleconfig SHARED
      ${oxygenstyleconfig_LIB_SRCS}
      ${oxygenstyleconfig_LIB_FORMS_HEADERS})

  generate_export_header(oxygenstyleconfig BASE_NAME oxygen_config EXPORT_FILE_NAME oxygen_config_export.h)

  target_link_libraries(oxygenstyleconfig ${KDE4_KDEUI_LIBS})

  set_target_properties(oxygenstyleconfig PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
  install(TARGETS oxygenstyleconfig ${INSTALL_TARGETS_DEFAULT_ARGS})

  # NB: although we install no headers, we still need to have a link
  #     interface, since other Oxygen targets link to this library
  target_link_libraries(oxygenstyleconfig oxygenstyle)

else()

  ki18n_wrap_ui(oxygenstyleconfig_LIB_FORMS_HEADERS ${oxygenstyleconfig_LIB_FORMS})

  kconfig_add_kcfg_files(oxygenstyleconfig_LIB_SRCS
      oxygenactiveshadowconfiguration.kcfgc
      oxygeninactiveshadowconfiguration.kcfgc
 )

  add_library(oxygenstyleconfig5 SHARED
      ${oxygenstyleconfig_LIB_SRCS}
      ${oxygenstyleconfig_LIB_FORMS_HEADERS})

  generate_export_header(oxygenstyleconfig5 BASE_NAME oxygen_config EXPORT_FILE_NAME oxygen_config_export.h)

  # NB: although we install no headers, we still need to have a link
  #     interface, since other Oxygen targets link to this library
  target_link_libraries(oxygenstyleconfig5
       PUBLIC
          oxygenstyle5
          Qt5::Core
          Qt5::Gui
          Qt5::Widgets
      PRIVATE
          KF5::I18n
 )

  set_target_properties(oxygenstyleconfig5 PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
  install(TARGETS oxygenstyleconfig5 ${INSTALL_TARGETS_DEFAULT_ARGS})
  # Note: no headers installed

endif()