Null check, don't blithely assume we have type info.
[dyninst.git] / common / CMakeLists.txt
1 # CMake configuration for common directory
2
3 if(NOT WIN32)
4 include_directories (
5     ${PROJECT_SOURCE_DIR}/common/h 
6     ${PROJECT_SOURCE_DIR}/common/src
7   )
8 else()
9 include_directories (
10     ${PROJECT_SOURCE_DIR}/common/h # don't include common/src; anything from there can still collide with default includes.
11         # stupid Windows case-insensitive naming.
12   )
13 endif()
14
15
16 set (SRC_LIST
17     src/Ident.C
18     src/string-regex.C 
19     src/Timer.C 
20     src/Types.C 
21     src/debugOstream.C 
22     src/lprintf.C 
23     src/pathName.C 
24     src/Time.C 
25     src/fraction.C 
26     src/timing.C 
27     src/stats.C 
28     src/Annotatable.C 
29     src/MappedFile.C 
30     src/sha1.C 
31     src/serialize-bin.C 
32     src/serialize-xml.C 
33     src/util.C 
34     src/Node.C 
35     src/Graph.C 
36     src/Edge.C 
37     src/DOT.C 
38     src/dyn_regs.C 
39     src/AST.C 
40     src/addrtranslate.C 
41     src/arch-x86.C 
42     src/arch-power.C 
43     src/debug_common.C 
44     src/VariableLocation.C 
45     src/Buffer.C
46   )
47
48 if (PLATFORM MATCHES freebsd)
49   set (SRC_LIST ${SRC_LIST} 
50     src/timing-freebsd.C
51     src/freebsdKludges.C
52     src/addrtranslate-sysv.C
53     src/addrtranslate-freebsd.C
54   )
55 endif()
56
57 if (PLATFORM MATCHES linux)
58   set (SRC_LIST ${SRC_LIST}
59     src/linuxKludges.C
60     src/timing-linux.C
61     src/parseauxv.C
62     src/addrtranslate-sysv.C
63     src/addrtranslate-auxv.C
64     src/addrtranslate-linux.C
65   )
66 endif()
67
68 if (PLATFORM MATCHES bgq)
69   set (SRC_LIST ${SRC_LIST}
70     src/bluegeneKludges.C
71     src/timing-linux.C
72     src/parseauxv.C
73     src/addrtranslate-sysv.C
74     src/addrtranslate-auxv.C
75     src/addrtranslate-bluegene.C
76   )
77 endif()
78
79 if (PLATFORM MATCHES cnl)
80   set (SRC_LIST ${SRC_LIST}
81     src/linuxKludges.C
82     src/timing-linux.C
83     src/parseauxv.C
84     src/addrtranslate-sysv.C
85     src/addrtranslate-auxv.C
86     src/addrtranslate-linux.C
87   )
88 endif()  
89
90 if (PLATFORM MATCHES nt OR PLATFORM MATCHES windows)
91   set (SRC_LIST ${SRC_LIST}
92     src/ntKludges.C
93     src/timing-nt.C
94     src/dthread-win.C
95     src/addrtranslate-win.C
96   )
97   add_definitions(-DWIN32 -D_WIN32_WINNT=0x500 -Dsnprintf=_snprintf)
98 endif()  
99
100
101 SET_SOURCE_FILES_PROPERTIES(${SRC_LIST} PROPERTIES LANGUAGE CXX)
102
103 ADD_DEFINITIONS(-DCOMMON_LIB)
104
105 add_library (common ${SRC_LIST})
106 add_library (common_static STATIC ${SRC_LIST})
107 FILE (GLOB headers "h/*.h")
108 set_target_properties (common common_static PROPERTIES PUBLIC_HEADER "${headers}")
109
110 if (${IBERTY_LIBRARY} MATCHES iberty)
111 target_link_libraries (common ${IBERTY_LIBRARY})
112 endif()
113
114 if(PLATFORM MATCHES nt OR PLATFORM MATCHES windows)
115   target_link_libraries (common Psapi WS2_32 dbghelp)
116 endif()
117 INSTALL (TARGETS common common_static
118         EXPORT DyninstTargets
119         RUNTIME DESTINATION ${INSTALL_LIB_DIR}
120         LIBRARY DESTINATION ${INSTALL_LIB_DIR}
121         ARCHIVE DESTINATION ${INSTALL_LIB_DIR}
122         PUBLIC_HEADER DESTINATION ${INSTALL_INCLUDE_DIR})