File: CMakeLists.txt

package info (click to toggle)
fcitx5-gtk 5.1.4-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 608 kB
  • sloc: cpp: 6,313; ansic: 1,268; makefile: 5
file content (99 lines) | stat: -rw-r--r-- 3,808 bytes parent folder | download | duplicates (4)
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
set(FCITX_GCLIENT_SOURCES
  fcitxgwatcher.c
  fcitxgclient.c
  )

set(FCITX_GCLIENT_BUILT_SOURCES
  ${CMAKE_CURRENT_BINARY_DIR}/marshall.c
  )

set(FCITX_GCLIENT_HEADERS
  fcitxgclient.h
  fcitxgwatcher.h
  )

set(FCITX_GCLIENT_BUILT_HEADERS
  ${CMAKE_CURRENT_BINARY_DIR}/marshall.h
  )

ecm_setup_version(PROJECT
                  VARIABLE_PREFIX Fcitx5GClient
                  PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/Fcitx5GClientConfigVersion.cmake"
                  SOVERSION 2)

pkg_get_variable(GLIB2_GLIB_GENMARSHAL "glib-2.0" "glib_genmarshal")
find_program(GLIB_GENMARSHAL ${GLIB2_GLIB_GENMARSHAL})

add_custom_command(OUTPUT marshall.c
  COMMAND ${GLIB_GENMARSHAL} --body --prefix=fcitx_marshall --internal --include-header=marshall.h
  ${PROJECT_SOURCE_DIR}/gtk-common/marshall.list > marshall.c
  DEPENDS ${PROJECT_SOURCE_DIR}/gtk-common/marshall.list)
add_custom_command(OUTPUT marshall.h
  COMMAND ${GLIB_GENMARSHAL} --header --prefix=fcitx_marshall --internal
  ${PROJECT_SOURCE_DIR}/gtk-common/marshall.list > marshall.h
  DEPENDS ${PROJECT_SOURCE_DIR}/gtk-common/marshall.list)

add_library(Fcitx5GClient ${GCLIENT_LIBRARY_TYPE} ${FCITX_GCLIENT_SOURCES}
  ${FCITX_GCLIENT_BUILT_SOURCES} ${FCITX_GCLIENT_BUILT_HEADERS})
set_target_properties(Fcitx5GClient
  PROPERTIES VERSION ${Fcitx5GClient_VERSION}
  SOVERSION ${Fcitx5GClient_SOVERSION}
  EXPORT_NAME GClient
  C_VISIBILITY_PRESET default
  POSITION_INDEPENDENT_CODE ON
  )
target_include_directories(Fcitx5GClient
    PUBLIC
        "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..;${CMAKE_CURRENT_BINARY_DIR}>"
        "$<INSTALL_INTERFACE:${CMAKE_INSTALL_FULL_INCLUDEDIR}>/Fcitx5/GClient"
    INTERFACE
        "${Gio2_INCLUDE_DIRS}"
        "${GObject2_INCLUDE_DIRS}"
)
target_link_libraries(Fcitx5GClient LINK_PRIVATE PkgConfig::Gio2 PkgConfig::GLib2 PkgConfig::GObject2)

add_library(Fcitx5::GClient ALIAS Fcitx5GClient)

if (NOT BUILD_ONLY_PLUGIN)
  configure_file(Fcitx5GClient.pc.in ${CMAKE_CURRENT_BINARY_DIR}/Fcitx5GClient.pc @ONLY)

  install(TARGETS Fcitx5GClient EXPORT Fcitx5GClientTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Fcitx5GClient.pc
    DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
  install(FILES ${FCITX_GCLIENT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/Fcitx5/GClient/fcitx-gclient")


  configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/Fcitx5GClientConfig.cmake.in"
                                "${CMAKE_CURRENT_BINARY_DIR}/Fcitx5GClientConfig.cmake"
                                INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Fcitx5GClient
  )

  install(EXPORT Fcitx5GClientTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Fcitx5GClient FILE Fcitx5GClientTargets.cmake NAMESPACE Fcitx5::)

  install(FILES  "${CMAKE_CURRENT_BINARY_DIR}/Fcitx5GClientConfig.cmake"
                "${CMAKE_CURRENT_BINARY_DIR}/Fcitx5GClientConfigVersion.cmake"
          DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Fcitx5GClient
          COMPONENT Devel )

  if(ENABLE_GIR)
    include(GObjectIntrospection)
    gobject_introspection(
      FILENAME FcitxG-1.0.gir
      NSVERSION 1.0
      INCLUDE Gio-2.0 GObject-2.0 GLib-2.0
      PACKAGE_EXPORT Fcitx5GClient
      LIBRARY Fcitx5GClient
      NAMESPACE FcitxG
      SCANNER_ARGS --warn-all --add-include-path=${CMAKE_CURRENT_SOURCE_DIR}
      COMPILER_ARGS "--includedir=${CMAKE_CURRENT_SOURCE_DIR}"
      SYMBOL_PREFIXES fcitx_g
      SOURCES ${FCITX_GCLIENT_SOURCES} ${FCITX_GCLIENT_HEADERS}
      QUIET
      )
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/FcitxG-1.0.gir"
      DESTINATION "${GOBJECT_INTROSPECTION_GIRDIR}")
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/FcitxG-1.0.typelib"
      DESTINATION "${GOBJECT_INTROSPECTION_TYPELIBDIR}")
  endif()

endif()