More CMake work
[dyninst.git] / dyninstAPI_RT / CMakeLists.txt
1 # CMake configuration for dyninstAPI_RT directory
2
3
4 include_directories (
5     ${PROJECT_SOURCE_DIR}/dyninstAPI_RT/src
6   )
7
8
9 set (SRC_LIST
10     src/RTcommon.c 
11     src/RTmemEmulator.c
12     src/RTsignal.c 
13 )
14
15 if (PLATFORM MATCHES freebsd)
16 set (SRC_LIST ${SRC_LIST}
17     src/RTposix.c
18     src/RTfreebsd.c 
19     src/RTheap.c 
20     src/RTheap-freebsd.c 
21     src/RTthread.c 
22     src/RTspace.S 
23 )
24 elseif (PLATFORM MATCHES linux OR PLATFORM MATCHES bgq)
25 set (SRC_LIST ${SRC_LIST}
26     src/RTposix.c 
27     src/RTlinux.c 
28     src/RTheap.c 
29     src/RTheap-linux.c 
30     src/RTthread.c 
31     src/RTspace.S 
32 )
33 endif ()
34
35 set (SRC_LIST_i386
36     src/RTthread-x86.c 
37     src/RTtlsgetaddr-x86.S 
38     src/RTstatic_ctors_dtors-x86.c
39 )
40 set (SRC_LIST_x86_64
41     src/RTthread-x86-64.c 
42     src/RTtlsgetaddr-x86.S 
43     src/RTstatic_ctors_dtors-x86.c
44 )
45 set (SRC_LIST_ppc32
46     src/RTthread-powerpc.c
47     src/RTthread-powerpc-asm.S
48     src/RTstatic_ctors_dtors-ppc32.c
49 )
50 set (SRC_LIST_ppc64
51     src/RTthread-powerpc.c
52     src/RTthread-powerpc-asm.S
53     src/RTstatic_ctors_dtors-ppc64.c                                                                                         
54 )
55
56
57
58 if (PLATFORM MATCHES amd64 OR PLATFORM MATCHES x86_64)
59 set (SRC_LIST_mabi ${SRC_LIST} ${SRC_LIST_i386})
60 set (SRC_LIST ${SRC_LIST} ${SRC_LIST_x86_64})
61 elseif (PLATFORM MATCHES ppc64)
62 set (SRC_LIST_mabi ${SRC_LIST} ${SRC_LIST_ppc32})
63 set (SRC_LIST ${SRC_LIST} ${SRC_LIST_ppc64}) 
64 elseif (PLATFORM MATCHES i386)
65 set (SRC_LIST ${SRC_LIST} ${SRC_LIST_i386})
66 elseif (PLATFORM MATCHES ppc32)
67 set (SRC_LIST ${SRC_LIST} ${SRC_LIST_ppc32})
68 endif()
69
70
71 add_library (dyninstAPI_RT SHARED ${SRC_LIST})
72 add_library (dyninstAPI_RT_static STATIC ${SRC_LIST})
73
74 set_target_properties (dyninstAPI_RT
75                       PROPERTIES
76                       SOVERSION ${SOVERSION}
77                       VERSION ${LIBVERSION})
78
79 set_target_properties (dyninstAPI_RT_static
80                       PROPERTIES
81                       OUTPUT_NAME dyninstAPI_RT
82                       SOVERSION ${SOVERSION}
83                       VERSION ${LIBVERSION})
84
85 INSTALL (DIRECTORY h/ DESTINATION include FILES_MATCHING PATTERN "*.h")
86 INSTALL (TARGETS dyninstAPI_RT dyninstAPI_RT_static
87         LIBRARY DESTINATION lib
88         ARCHIVE DESTINATION lib)
89
90 if (SRC_LIST_mabi) 
91 add_library (dyninstAPI_RT_m32 SHARED ${SRC_LIST_mabi})
92 add_library (dyninstAPI_RT_m32_static STATIC ${SRC_LIST_mabi})
93
94 set_target_properties (dyninstAPI_RT_m32
95                       PROPERTIES
96                       COMPILE_FLAGS "-m32"
97                       LINK_FLAGS "-m32"
98                       SOVERSION ${SOVERSION}
99                       VERSION ${LIBVERSION})
100
101 set_target_properties (dyninstAPI_RT_m32_static
102                       PROPERTIES
103                       OUTPUT_NAME dyninstAPI_RT_m32
104                       COMPILE_FLAGS "-m32"
105                       LINK_FLAGS "-m32"
106                       SOVERSION ${SOVERSION}
107                       VERSION ${LIBVERSION})
108 INSTALL (TARGETS dyninstAPI_RT_m32 dyninstAPI_RT_m32_static
109          LIBRARY DESTINATION lib
110          ARCHIVE DESTINATION lib)
111 endif()
112