File: CMakeLists.txt

package info (click to toggle)
plplot 5.15.0%2Bdfsg-19
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 31,312 kB
  • sloc: ansic: 79,707; xml: 28,583; cpp: 20,033; ada: 19,456; tcl: 12,081; f90: 11,431; ml: 7,276; java: 6,863; python: 6,792; sh: 3,274; perl: 828; lisp: 75; makefile: 50; sed: 34; fortran: 5
file content (92 lines) | stat: -rw-r--r-- 2,815 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
# src_lib/CMakeLists.txt

set(SOURCE_LIST
${CMAKE_CURRENT_SOURCE_DIR}/hello_1.adb
${CMAKE_CURRENT_SOURCE_DIR}/hello_1.ads
)

# These are Ada library information files built by gnat.  I am not
# sure whether the name suffixes correspond to the *.adb or *.ads files
# above or the union of them.  In any case, if any of the names change
# above, then this list will probably have to be changed as well.)

# N.B. the absolute location prefix of these files may have to be changed
# in the future since this is currently a CMake internal.
set(ALI_PREFIX
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/hello_1.dir
)

# This variable references the Ada library information file for the library.
# and is useful for cleaning and/or installing the *.ali files.

set(ALI_LIST
${ALI_PREFIX}/hello_1.ali
)

# CMake assumes compilation results only in object files being generated.
# However, gnatmake generates both object files and *.ali (Ada library
# information) files so it doesn't intrinsically know how to clean those
# additional *.ali files.
# Here is a workaround for this fundamental CMake limitation.

# Add generated .ali files to the list of additional files to be
# removed by make clean

set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ALI_LIST}")

add_library(hello_1 ${SOURCE_LIST})

# Link to GNAT_LIB to avoid underlinking the hello_1 library (which causes
# link errors on at least the Cygwin platform), but use
# the PRIVATE keyword (on all platforms) to avoid overlinking Ada applications
# that link to hello_1.
target_link_libraries(hello_1 PRIVATE ${GNAT_LIB})

if(USE_RPATH)
  set_target_properties(
    hello_1
    PROPERTIES
    INSTALL_RPATH "${LIB_INSTALL_RPATH}"
    )
else(USE_RPATH)
  set_target_properties(
    hello_1
    PROPERTIES
    INSTALL_NAME_DIR "${LIB_DIR}"
    )
endif(USE_RPATH)

set_target_properties(hello_1
PROPERTIES
SOVERSION 0
VERSION 0.0
OUTPUT_NAME hello
POSITION_INDEPENDENT_CODE ON
)

install(FILES ${SOURCE_LIST}
  DESTINATION ${ADA_INCLUDE_DIR}
  )

# Permissions of *.ali files in accordance with
# http://people.debian.org/~lbrenta/debian-ada-policy.html
install(FILES ${ALI_LIST}
  DESTINATION ${ADA_LIB_DIR}
  PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
  )

install(TARGETS hello_1
  EXPORT export_test_ada
  ARCHIVE DESTINATION ${LIB_DIR}
  LIBRARY DESTINATION ${LIB_DIR}
  RUNTIME DESTINATION ${BIN_DIR}
  )

# This exports information for every target for the whole build that
# has the EXPORT export_test_ada signature for the
# install(TARGETS ...) command.  The only such target in this test_ada
# project is the hello_1 target above.
install(EXPORT export_test_ada DESTINATION ${LIB_DIR}/cmake/test_ada)

# Install overall configuration file describing the above export
install(FILES test_adaConfig.cmake DESTINATION ${LIB_DIR}/cmake/test_ada)