File: CMakeLists.txt

package info (click to toggle)
libeconf 0.7.7%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,636 kB
  • sloc: ansic: 7,440; python: 1,204; cs: 651; sh: 214; xml: 182; makefile: 7
file content (76 lines) | stat: -rw-r--r-- 2,380 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
# Create the library
set(econf_SRCS libeconf.c
               libeconf_ext.c
               getfilecontents.c
               mergefiles.c
               helpers.c
               keyfile.c
               econf_error.c
               get_value_def.c
	       readconfig.c
               )

set(econf_HDRS defines.h
               getfilecontents.h
               mergefiles.h
               helpers.h
               keyfile.h
	       readconfig.h
               )

add_library(econf SHARED ${econf_SRCS} ${econf_HDRS}
               "${PROJECT_SOURCE_DIR}/include/libeconf.h" "${PROJECT_SOURCE_DIR}/include/libeconf_ext.h")

target_include_directories(econf PUBLIC
  $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

set_target_properties(econf PROPERTIES
  SOVERSION ${PROJECT_VERSION_MAJOR}
  VERSION ${PROJECT_VERSION}
  COMPILE_FLAGS "-D_REENTRANT=1"
  C_STANDARD 11
  C_STANDARD_REQUIRED ON
  PUBLIC_HEADER "${PROJECT_SOURCE_DIR}/include/libeconf.h;${PROJECT_SOURCE_DIR}/include/libeconf_ext.h"
  LINK_FLAGS "-Wl,--no-undefined -Wl,--version-script,\"${PROJECT_SOURCE_DIR}/lib/libeconf.map\""
)

# Install the library
configure_file(${PROJECT_SOURCE_DIR}/cmake/libeconf.pc.in ${CMAKE_BINARY_DIR}/libeconf.pc @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/libeconf.pc
    DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
install(TARGETS econf
  EXPORT libeconfTargets
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

# Generate and install the exports
export(EXPORT libeconfTargets
  FILE ${CMAKE_BINARY_DIR}/libeconfTargets.cmake
)
install(EXPORT libeconfTargets
  FILE libeconfTargets.cmake
  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libeconf
)
configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/libeconfConfig.cmake.in
  ${CMAKE_BINARY_DIR}/libeconfConfig.cmake
  INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libeconf
  NO_SET_AND_CHECK_MACRO
  NO_CHECK_REQUIRED_COMPONENTS_MACRO
)
install(FILES
  ${CMAKE_BINARY_DIR}/libeconfConfig.cmake
  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libeconf
)
write_basic_package_version_file(
  ${CMAKE_BINARY_DIR}/libeconfConfigVersion.cmake
  VERSION ${PROJECT_VERSION}
  COMPATIBILITY SameMinorVersion
)
install(FILES
  ${CMAKE_BINARY_DIR}/libeconfConfigVersion.cmake
  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libeconf
)