Check cmake version to make sure cotire is supported
[dyninst.git] / stackwalk / CMakeLists.txt
1 # CMake configuration for proccontrol directory
2
3 include_directories (
4   ${PROJECT_SOURCE_DIR}/proccontrol/h
5   ${PROJECT_SOURCE_DIR}/elf/h
6   ${PROJECT_SOURCE_DIR}/dwarf/h
7   src
8   h
9   )
10
11 set (SRC_LIST
12     src/frame.C 
13     src/framestepper.C 
14     src/swk_errors.C 
15     src/symlookup.C 
16     src/walker.C 
17     src/procstate.C 
18     src/steppergroup.C 
19     src/libstate.C 
20     src/sw_c.C 
21     src/sw_pcontrol.C  
22 )
23
24 if (PLATFORM MATCHES freebsd)
25 set (SRC_LIST ${SRC_LIST}
26      src/freebsd-swk.C 
27      src/x86-swk.C
28      src/symtab-swk.C 
29      src/dbginfo-stepper.C 
30      src/x86-wanderer.C 
31      src/linuxbsd-swk.C
32      src/linuxbsd-x86-swk.C 
33      src/freebsd-x86-swk.C
34 )
35 elseif (PLATFORM MATCHES linux OR PLATFORM MATCHES freebsd)
36     set (SRC_LIST ${SRC_LIST}
37         src/symtab-swk.C 
38         src/linuxbsd-swk.C 
39         src/linux-swk.C
40     )
41     if (PLATFORM MATCHES ppc)
42         set (SRC_LIST ${SRC_LIST}
43             src/linux-ppc-swk.C 
44             src/ppc-swk.C
45         )
46
47     elseif (PLATFORM MATCHES aarch64)
48         set (SRC_LIST ${SRC_LIST}
49             src/linux-aarch64-swk.C 
50             src/aarch64-swk.C
51             src/dbginfo-stepper.C 
52         )
53
54     elseif (PLATFORM MATCHES i386 OR PLATFORM MATCHES x86_64)
55         set (SRC_LIST ${SRC_LIST}
56             src/dbginfo-stepper.C 
57             src/linux-x86-swk.C 
58             src/x86-wanderer.C 
59             src/linuxbsd-x86-swk.C 
60             src/x86-swk.C 
61         )
62     endif()
63 elseif (PLATFORM MATCHES bgq)
64     set (SRC_LIST ${SRC_LIST}
65         src/ppc-swk.C 
66         src/symtab-swk.C 
67         src/linuxbsd-swk.C
68         src/bluegeneq-swk.C
69     )
70 endif()
71 if (PLATFORM MATCHES nt OR PLATFORM MATCHES windows)
72     set (SRC_LIST ${SRC_LIST}
73         src/x86-wanderer.C 
74         src/x86-swk.C
75         src/win-x86-swk.C
76         src/symtab-swk.C
77     )
78 endif()
79
80 if (SW_ANALYSIS_STEPPER)
81     set (SRC_LIST ${SRC_LIST}
82         src/analysis_stepper.C
83         src/callchecker-IAPI.C
84     )
85 else ()
86     set (SRC_LIST ${SRC_LIST}
87         src/callchecker.C
88     )
89 endif()
90
91 SET_SOURCE_FILES_PROPERTIES(${SRC_LIST} PROPERTIES LANGUAGE CXX)
92
93 ADD_DEFINITIONS(-DSTACKWALKER_EXPORTS)
94
95 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FORCE_FRAME_POINTER}")
96 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FORCE_FRAME_POINTER}")
97
98 set(DEPS common instructionAPI pcontrol)
99 if (UNIX)
100 set (DEPS ${DEPS} dynDwarf dynElf)
101 endif()
102
103 set (DEPS ${DEPS} ${SYMREADER})
104
105 if (SW_ANALYSIS_STEPPER)
106 set (DEPS ${DEPS} parseAPI)
107 endif()
108
109
110 dyninst_library(stackwalk ${DEPS})
111 if (USE_COTIRE)
112     cotire(stackwalk)
113 endif()