svf-tools 1.0.846 → 1.0.848
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.config.cmake.in +24 -0
- package/.config.in +26 -0
- package/.gitignore +2 -0
- package/CMakeLists.txt +138 -47
- package/Dockerfile +1 -1
- package/SVF-doxygen/html/CMakeLists_8txt.html +1 -24
- package/SVF-doxygen/html/globals_func_i.html +0 -3
- package/SVF-doxygen/html/globals_i.html +2 -5
- package/SVF-doxygen/html/search/all_10.js +325 -325
- package/SVF-doxygen/html/search/all_11.js +224 -224
- package/SVF-doxygen/html/search/all_12.js +552 -552
- package/SVF-doxygen/html/search/all_13.js +190 -190
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +168 -168
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +173 -173
- package/SVF-doxygen/html/search/all_9.js +540 -541
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +197 -197
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +81 -81
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +34 -34
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +57 -57
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +362 -362
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +139 -139
- package/SVF-doxygen/html/search/functions_12.js +288 -288
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +173 -173
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +261 -261
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +60 -60
- package/SVF-doxygen/html/search/functions_7.js +855 -855
- package/SVF-doxygen/html/search/functions_8.js +148 -148
- package/SVF-doxygen/html/search/functions_9.js +420 -421
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +3 -3
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +62 -62
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +56 -56
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +45 -45
- package/SVF-doxygen/html/search/variables_12.js +90 -90
- package/SVF-doxygen/html/search/variables_13.js +74 -74
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +50 -50
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +55 -55
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/package.json +1 -1
- package/svf/CMakeLists.txt +25 -30
- package/svf-llvm/CMakeLists.txt +60 -45
- package/svf-llvm/tools/CMakeLists.txt +1 -2
package/.config.cmake.in
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
@PACKAGE_INIT@
|
|
2
|
+
|
|
3
|
+
set_and_check(SVF_INSTALL_ROOT "@PACKAGE_SVF_INSTALL_ROOT@")
|
|
4
|
+
set_and_check(SVF_INSTALL_BIN_DIR "@PACKAGE_SVF_INSTALL_BIN_DIR@")
|
|
5
|
+
set_and_check(SVF_INSTALL_LIB_DIR "@PACKAGE_SVF_INSTALL_LIB_DIR@")
|
|
6
|
+
set_and_check(SVF_INSTALL_INCLUDE_DIR "@PACKAGE_SVF_INSTALL_INCLUDE_DIR@")
|
|
7
|
+
|
|
8
|
+
set_and_check(SVF_INSTALL_EXTAPI_DIR "@PACKAGE_SVF_INSTALL_EXTAPI_DIR@")
|
|
9
|
+
set_and_check(SVF_INSTALL_EXTAPI_FILE "@PACKAGE_SVF_INSTALL_EXTAPI_FILE@")
|
|
10
|
+
|
|
11
|
+
set(SVF_SANITIZE "@SVF_SANITIZE@")
|
|
12
|
+
|
|
13
|
+
set(SVF_COVERAGE "@SVF_COVERAGE@")
|
|
14
|
+
set(SVF_WARN_AS_ERROR "@SVF_WARN_AS_ERROR@")
|
|
15
|
+
set(SVF_EXPORT_DYNAMIC "@SVF_EXPORT_DYNAMIC@")
|
|
16
|
+
set(SVF_ENABLE_ASSERTIONS "@SVF_ENABLE_ASSERTIONS@")
|
|
17
|
+
|
|
18
|
+
set(SVF_BUILD_TYPE "@CMAKE_BUILD_TYPE@")
|
|
19
|
+
set(SVF_CXX_STANDARD "@CMAKE_CXX_STANDARD@")
|
|
20
|
+
|
|
21
|
+
set(SVF_ENABLE_RTTI "@SVF_ENABLE_RTTI@")
|
|
22
|
+
set(SVF_ENABLE_EXCEPTIONS "@SVF_ENABLE_EXCEPTIONS@")
|
|
23
|
+
|
|
24
|
+
include("${CMAKE_CURRENT_LIST_DIR}/SVFTargets.cmake")
|
package/.config.in
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#ifndef CONFIG_H_IN
|
|
2
|
+
#define CONFIG_H_IN
|
|
3
|
+
|
|
4
|
+
// Directory structure of SVF build
|
|
5
|
+
#define SVF_ROOT "@CMAKE_CURRENT_SOURCE_DIR@"
|
|
6
|
+
#define SVF_BUILD_DIR "@CMAKE_CURRENT_BINARY_DIR@"
|
|
7
|
+
#define SVF_INSTALL_DIR "@SVF_INSTALL_ROOT@"
|
|
8
|
+
#define SVF_BIN_DIR "@SVF_INSTALL_BIN_DIR@"
|
|
9
|
+
#define SVF_LIB_DIR "@SVF_INSTALL_LIB_DIR@"
|
|
10
|
+
#define SVF_INCLUDE_DIR "@SVF_INSTALL_INCLUDE_DIR@"
|
|
11
|
+
#define SVF_EXTAPI_DIR "@SVF_INSTALL_EXTAPI_DIR@"
|
|
12
|
+
#define SVF_EXTAPI_BC "@SVF_INSTALL_EXTAPI_FILE@"
|
|
13
|
+
|
|
14
|
+
// Build mode used to build SVF
|
|
15
|
+
#define SVF_BUILD_TYPE "@CMAKE_BUILD_TYPE@"
|
|
16
|
+
|
|
17
|
+
// Sanitiser mode used for building SVF
|
|
18
|
+
#cmakedefine SVF_SANITIZE "@SVF_SANITIZE@"
|
|
19
|
+
|
|
20
|
+
// Build options used when building SVF
|
|
21
|
+
#cmakedefine SVF_COVERAGE
|
|
22
|
+
#cmakedefine SVF_WARN_AS_ERROR
|
|
23
|
+
#cmakedefine SVF_EXPORT_DYNAMIC
|
|
24
|
+
#cmakedefine SVF_ENABLE_ASSERTIONS
|
|
25
|
+
|
|
26
|
+
#endif // CONFIG_H_IN
|
package/.gitignore
CHANGED
package/CMakeLists.txt
CHANGED
|
@@ -1,38 +1,95 @@
|
|
|
1
1
|
cmake_minimum_required(VERSION 3.13.4)
|
|
2
2
|
|
|
3
|
-
project(
|
|
3
|
+
project(SVF
|
|
4
|
+
VERSION 2.7.1
|
|
5
|
+
DESCRIPTION "SVF is a static value-flow analysis tool for LLVM-based languages"
|
|
6
|
+
HOMEPAGE_URL "https://github.com/SVF-tools/SVF"
|
|
7
|
+
LANGUAGES C CXX
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
# Ensure installation directories like ${CMAKE_INSTALL_LIBDIR} are available
|
|
11
|
+
include(GNUInstallDirs)
|
|
4
12
|
|
|
5
|
-
|
|
13
|
+
# Configurable (string) options for building SVF
|
|
14
|
+
set(SVF_SANITIZE "" CACHE STRING "Create sanitizer build (address)")
|
|
15
|
+
|
|
16
|
+
# Configurable (boolean) options for building SVF
|
|
17
|
+
option(SVF_COVERAGE "Create coverage build")
|
|
18
|
+
option(SVF_WARN_AS_ERROR "Treat warnings as errors when building SVF (default: on)" ON)
|
|
19
|
+
option(SVF_EXPORT_DYNAMIC "Export all (not only used) dynamic symbols to dynamic symbol table")
|
|
20
|
+
option(SVF_ENABLE_ASSERTIONS "Always enable assertions")
|
|
6
21
|
|
|
7
|
-
|
|
22
|
+
# Configure top-level SVF variables (used by CMake for configuring installed SVF package)
|
|
23
|
+
set(SVF_INSTALL_ROOT ${CMAKE_INSTALL_PREFIX})
|
|
24
|
+
set(SVF_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})
|
|
25
|
+
set(SVF_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
|
|
26
|
+
set(SVF_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/svf)
|
|
27
|
+
|
|
28
|
+
# Set where extapi.bc is exported to in the installed CMake package
|
|
29
|
+
set(SVF_INSTALL_EXTAPI_DIR ${SVF_INSTALL_INCLUDE_DIR}/SVF-LLVM)
|
|
30
|
+
set(SVF_INSTALL_EXTAPI_FILE ${SVF_INSTALL_EXTAPI_DIR}/extapi.bc)
|
|
31
|
+
|
|
32
|
+
message(STATUS "Building ${PROJECT_NAME} with configuration:
|
|
33
|
+
SVF version: ${SVF_VERSION}
|
|
34
|
+
SVF root directory: ${SVF_SOURCE_DIR}
|
|
35
|
+
SVF binary directory: ${SVF_BINARY_DIR}
|
|
36
|
+
SVF option - create sanitiser build (str): ${SVF_SANITIZE}
|
|
37
|
+
SVF option - coverage build: ${SVF_COVERAGE}
|
|
38
|
+
SVF option - warnings as errors: ${SVF_WARN_AS_ERROR}
|
|
39
|
+
SVF option - unused dynamic symbols: ${SVF_EXPORT_DYNAMIC}
|
|
40
|
+
SVF option - enable build assertions: ${SVF_ENABLE_ASSERTIONS}")
|
|
41
|
+
|
|
42
|
+
message(STATUS "Using CMake build configuration:
|
|
43
|
+
CMake generator: ${CMAKE_GENERATOR}
|
|
44
|
+
CMake C compiler: ${CMAKE_C_COMPILER_ID}
|
|
45
|
+
CMake C++ compiler: ${CMAKE_CXX_COMPILER_ID}
|
|
46
|
+
CMake current list directory: ${CMAKE_CURRENT_LIST_DIR}
|
|
47
|
+
CMake current source directory: ${CMAKE_CURRENT_SOURCE_DIR}
|
|
48
|
+
CMake current binary directory: ${CMAKE_CURRENT_BINARY_DIR}")
|
|
49
|
+
|
|
50
|
+
# Create config.h based on config.in
|
|
51
|
+
configure_file(${SVF_SOURCE_DIR}/.config.in ${SVF_BINARY_DIR}/include/Util/config.h)
|
|
52
|
+
|
|
53
|
+
# Include the directory where the configuration header is exported for all targets
|
|
54
|
+
include_directories(${SVF_BINARY_DIR}/include)
|
|
8
55
|
|
|
9
|
-
#
|
|
10
|
-
|
|
56
|
+
# Install generated configuration header (see `configure_file()`) to top-level include dir of SVF
|
|
57
|
+
install(
|
|
58
|
+
FILES ${SVF_BINARY_DIR}/include/Util/config.h
|
|
59
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/svf/Util
|
|
60
|
+
)
|
|
11
61
|
|
|
12
62
|
# Build SVF with C++ standard C++17
|
|
13
63
|
set(CMAKE_CXX_STANDARD 17)
|
|
14
64
|
set(CMAKE_CXX_EXTENSIONS ON)
|
|
15
65
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
66
|
+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
67
|
+
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
|
|
68
|
+
|
|
69
|
+
# By default, build SVF and its targets treating all compiler warnings as errors (except deprecations)
|
|
70
|
+
add_compile_options(
|
|
71
|
+
"$<$<BOOL:${SVF_WARN_AS_ERROR}>:-Wall>"
|
|
72
|
+
"$<$<BOOL:${SVF_WARN_AS_ERROR}>:-Werror>"
|
|
73
|
+
"$<$<BOOL:${SVF_WARN_AS_ERROR}>:-Wno-deprecated-declarations>"
|
|
74
|
+
)
|
|
16
75
|
|
|
17
76
|
# Keep assertions enabled if requested
|
|
18
|
-
|
|
19
|
-
if(SVF_ENABLE_ASSERTIONS)
|
|
20
|
-
add_compile_options("-UNDEBUG")
|
|
21
|
-
endif()
|
|
77
|
+
add_compile_options("$<$<BOOL:${SVF_ENABLE_ASSERTIONS}>:-UNDEBUG>")
|
|
22
78
|
|
|
23
|
-
#
|
|
24
|
-
|
|
79
|
+
# Export dynamic symbols if requested (adds "-export-dynamic" to linkers that support it to enable backtraces)
|
|
80
|
+
add_compile_options("$<$<BOOL:${SVF_EXPORT_DYNAMIC}>:-rdynamic>")
|
|
25
81
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
82
|
+
# Configure whether a coverage build should be created for SVF (i.e. add runtime instrumentation)
|
|
83
|
+
add_compile_options(
|
|
84
|
+
"$<$<OR:$<BOOL:${SVF_COVERAGE}>,$<BOOL:$ENV{SVF_COVERAGE}>>:-fprofile-arcs>"
|
|
85
|
+
"$<$<OR:$<BOOL:${SVF_COVERAGE}>,$<BOOL:$ENV{SVF_COVERAGE}>>:-ftest-coverage>"
|
|
86
|
+
)
|
|
87
|
+
add_link_options(
|
|
88
|
+
"$<$<OR:$<BOOL:${SVF_COVERAGE}>,$<BOOL:$ENV{SVF_COVERAGE}>>:-fprofile-arcs>"
|
|
89
|
+
"$<$<OR:$<BOOL:${SVF_COVERAGE}>,$<BOOL:$ENV{SVF_COVERAGE}>>:-ftest-coverage>"
|
|
90
|
+
)
|
|
32
91
|
|
|
33
|
-
|
|
34
|
-
""
|
|
35
|
-
CACHE STRING "Create sanitizer build (address)")
|
|
92
|
+
# If building with sanitiser, load the given sanitiser mode
|
|
36
93
|
if(SVF_SANITIZE STREQUAL "address")
|
|
37
94
|
add_compile_options("-fno-omit-frame-pointer" "-fsanitize=address")
|
|
38
95
|
add_link_options("-fsanitize=address")
|
|
@@ -42,54 +99,88 @@ elseif(SVF_SANITIZE STREQUAL "thread")
|
|
|
42
99
|
add_link_options("-fsanitize=thread")
|
|
43
100
|
message(STATUS "Sanitizer build: ${SVF_SANITIZE}")
|
|
44
101
|
elseif(NOT SVF_SANITIZE STREQUAL "")
|
|
45
|
-
message(
|
|
102
|
+
message(FATAL_ERROR "Unknown sanitizer type: ${SVF_SANITIZE}")
|
|
46
103
|
endif()
|
|
47
104
|
|
|
105
|
+
# Check if the test-suite is present, if it is then build bc files and add testing to cmake build
|
|
106
|
+
if(EXISTS "${PROJECT_SOURCE_DIR}/Test-Suite")
|
|
107
|
+
include_directories(${PROJECT_SOURCE_DIR}/Test-Suite)
|
|
108
|
+
enable_testing()
|
|
109
|
+
add_subdirectory(Test-Suite)
|
|
110
|
+
include(CTest)
|
|
111
|
+
endif()
|
|
112
|
+
|
|
113
|
+
# Find Z3 and its include directory from the top-level include file
|
|
48
114
|
find_library(
|
|
49
115
|
Z3_LIBRARIES
|
|
116
|
+
REQUIRED
|
|
50
117
|
NAMES z3
|
|
51
118
|
HINTS ${Z3_DIR} ENV Z3_DIR
|
|
52
119
|
PATH_SUFFIXES bin lib)
|
|
53
120
|
find_path(
|
|
54
121
|
Z3_INCLUDES
|
|
122
|
+
REQUIRED
|
|
55
123
|
NAMES z3++.h
|
|
56
124
|
HINTS ${Z3_DIR} ENV Z3_DIR
|
|
57
125
|
PATH_SUFFIXES include z3)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
message(STATUS "Found Z3: ${Z3_LIBRARIES}")
|
|
62
|
-
message(STATUS "Z3 include dir: ${Z3_INCLUDES}")
|
|
126
|
+
message(STATUS "Z3 STATUS:
|
|
127
|
+
Z3 library file: ${Z3_LIBRARIES}
|
|
128
|
+
Z3 include directory: ${Z3_INCLUDES}")
|
|
63
129
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
# checks if the test-suite is present, if it is then build bc files and add
|
|
68
|
-
# testing to cmake build
|
|
69
|
-
if(EXISTS "${PROJECT_SOURCE_DIR}/Test-Suite")
|
|
70
|
-
include_directories(${PROJECT_SOURCE_DIR}/Test-Suite)
|
|
71
|
-
enable_testing()
|
|
72
|
-
add_subdirectory(Test-Suite)
|
|
73
|
-
include(CTest)
|
|
74
|
-
endif()
|
|
130
|
+
# Add the Z3 include directory and link the Z3 library to all targets of SVF
|
|
131
|
+
link_libraries(${Z3_LIBRARIES})
|
|
132
|
+
include_directories(SYSTEM ${Z3_INCLUDES})
|
|
75
133
|
|
|
134
|
+
# Add the actual SVF and SVF-LLVM targets
|
|
76
135
|
add_subdirectory(svf)
|
|
77
136
|
add_subdirectory(svf-llvm)
|
|
78
137
|
|
|
79
138
|
# Whether RTTI/Exceptions are enabled currently depends on whether the LLVM instance used to build
|
|
80
139
|
# SVF had them enabled; since the LLVM instance is found in the "svf-llvm" subdirectory, it sets the
|
|
81
140
|
# below variables in its parent directory (i.e. for this CMakeLists.txt) so check them here
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
141
|
+
add_compile_definitions(
|
|
142
|
+
$<IF:$<BOOL:${SVF_ENABLE_RTTI}>,,-fno-rtti>
|
|
143
|
+
$<IF:$<BOOL:${SVF_ENABLE_EXCEPTIONS}>,,-fno-exceptions>
|
|
144
|
+
)
|
|
85
145
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
146
|
+
# Export the SVF target for including SVF from CMake using find_package(SVF)
|
|
147
|
+
include(CMakePackageConfigHelpers)
|
|
148
|
+
|
|
149
|
+
# Generate SVFConfig.cmake
|
|
150
|
+
configure_package_config_file(
|
|
151
|
+
.config.cmake.in
|
|
152
|
+
${CMAKE_CURRENT_BINARY_DIR}/SVFConfig.cmake
|
|
153
|
+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SVF
|
|
154
|
+
PATH_VARS
|
|
155
|
+
SVF_INSTALL_ROOT
|
|
156
|
+
SVF_INSTALL_BIN_DIR
|
|
157
|
+
SVF_INSTALL_LIB_DIR
|
|
158
|
+
SVF_INSTALL_INCLUDE_DIR
|
|
159
|
+
SVF_INSTALL_EXTAPI_DIR
|
|
160
|
+
SVF_INSTALL_EXTAPI_FILE
|
|
161
|
+
)
|
|
89
162
|
|
|
90
|
-
#
|
|
91
|
-
|
|
163
|
+
# Generate SVFConfigVersion.cmake
|
|
164
|
+
write_basic_package_version_file(
|
|
165
|
+
"${CMAKE_CURRENT_BINARY_DIR}/SVFConfigVersion.cmake"
|
|
166
|
+
VERSION "${SVF_VERSION_MAJOR}.${SVF_VERSION_MINOR}"
|
|
167
|
+
COMPATIBILITY AnyNewerVersion
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
# Install above CMake files as part of installation
|
|
92
171
|
install(
|
|
93
|
-
FILES
|
|
94
|
-
|
|
172
|
+
FILES
|
|
173
|
+
${CMAKE_CURRENT_BINARY_DIR}/SVFConfig.cmake
|
|
174
|
+
${CMAKE_CURRENT_BINARY_DIR}/SVFConfigVersion.cmake
|
|
175
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SVF
|
|
95
176
|
)
|
|
177
|
+
|
|
178
|
+
# Install CMake targets from different SVF subprojects so they can be found by find_package(SVF)
|
|
179
|
+
install(
|
|
180
|
+
EXPORT SVFTargets
|
|
181
|
+
FILE SVFTargets.cmake
|
|
182
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SVF
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
# Export targets added to SVFTargets (set by install() command)
|
|
186
|
+
export(EXPORT SVFTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/SVFTargets.cmake")
|
package/Dockerfile
CHANGED
|
@@ -14,7 +14,7 @@ ENV HOME=/home/SVF-tools
|
|
|
14
14
|
|
|
15
15
|
# Define dependencies.
|
|
16
16
|
ENV lib_deps="make g++-8 gcc-8 git zlib1g-dev libncurses5-dev build-essential libssl-dev libpcre2-dev zip vim libtinfo5"
|
|
17
|
-
ENV build_deps="wget xz-utils cmake python git gdb tcl"
|
|
17
|
+
ENV build_deps="wget xz-utils cmake-3.2.3 python git gdb tcl"
|
|
18
18
|
|
|
19
19
|
# Fetch dependencies.
|
|
20
20
|
RUN apt-get update --fix-missing
|
|
@@ -72,8 +72,6 @@ $(function() {
|
|
|
72
72
|
Functions</h2></td></tr>
|
|
73
73
|
<tr class="memitem:ab0c0fec5e777861a934894bc00fc585c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CMakeLists_8txt.html#ab0c0fec5e777861a934894bc00fc585c">add_subdirectory</a> (SABER) add_subdirectory(WPA) add_subdirectory(Example) add_subdirectory(DDA) add_subdirectory(MTA) add_subdirectory(CFL) add_subdirectory(LLVM2SVF) set_target_properties(cfl dvf svf-ex llvm2svf mta saber wpa PROPERTIES RUNTIME_OUTPUT_DIRECTORY $</td></tr>
|
|
74
74
|
<tr class="separator:ab0c0fec5e777861a934894bc00fc585c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
75
|
-
<tr class="memitem:a9f6d70f6197845162ae5fd12f33f094a"><td class="memItemLeft" align="right" valign="top">bin </td><td class="memItemRight" valign="bottom"><a class="el" href="CMakeLists_8txt.html#a9f6d70f6197845162ae5fd12f33f094a">include</a> (GNUInstallDirs) install(TARGETS cfl dvf svf-ex llvm2svf mta saber wpa RUNTIME DESTINATION $</td></tr>
|
|
76
|
-
<tr class="separator:a9f6d70f6197845162ae5fd12f33f094a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
77
75
|
</table>
|
|
78
76
|
<h2 class="groupheader">Function Documentation</h2>
|
|
79
77
|
<a id="ab0c0fec5e777861a934894bc00fc585c"></a>
|
|
@@ -93,28 +91,7 @@ Functions</h2></td></tr>
|
|
|
93
91
|
</div><div class="memdoc">
|
|
94
92
|
|
|
95
93
|
<p class="definition">Definition at line <a class="el" href="CMakeLists_8txt_source.html#l00001">1</a> of file <a class="el" href="CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
|
|
96
|
-
<div class="fragment"><div class="line"><a name="
|
|
97
|
-
</div><!-- fragment -->
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
<a id="a9f6d70f6197845162ae5fd12f33f094a"></a>
|
|
101
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a9f6d70f6197845162ae5fd12f33f094a">◆ </a></span>include()</h2>
|
|
102
|
-
|
|
103
|
-
<div class="memitem">
|
|
104
|
-
<div class="memproto">
|
|
105
|
-
<table class="memname">
|
|
106
|
-
<tr>
|
|
107
|
-
<td class="memname">bin include </td>
|
|
108
|
-
<td>(</td>
|
|
109
|
-
<td class="paramtype">GNUInstallDirs </td>
|
|
110
|
-
<td class="paramname"></td><td>)</td>
|
|
111
|
-
<td></td>
|
|
112
|
-
</tr>
|
|
113
|
-
</table>
|
|
114
|
-
</div><div class="memdoc">
|
|
115
|
-
|
|
116
|
-
<p class="definition">Definition at line <a class="el" href="CMakeLists_8txt_source.html#l00016">16</a> of file <a class="el" href="CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
|
|
117
|
-
<div class="fragment"><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  {CMAKE_INSTALL_BINDIR}</div>
|
|
94
|
+
<div class="fragment"><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  {CMAKE_BINARY_DIR}/bin</div>
|
|
118
95
|
</div><!-- fragment -->
|
|
119
96
|
</div>
|
|
120
97
|
</div>
|
|
@@ -67,9 +67,6 @@ $(function() {
|
|
|
67
67
|
<li>if()
|
|
68
68
|
: <a class="el" href="cJSON_8cpp.html#a90e6101bee79e6d18c535254695e91e3">cJSON.cpp</a>
|
|
69
69
|
</li>
|
|
70
|
-
<li>include()
|
|
71
|
-
: <a class="el" href="CMakeLists_8txt.html#a9f6d70f6197845162ae5fd12f33f094a">CMakeLists.txt</a>
|
|
72
|
-
</li>
|
|
73
70
|
<li>indent()
|
|
74
71
|
: <a class="el" href="DCHG_8cpp.html#a6673217180d3b6fb73c7c6387777f269">DCHG.cpp</a>
|
|
75
72
|
</li>
|
|
@@ -67,9 +67,6 @@ $(function() {
|
|
|
67
67
|
<li>if()
|
|
68
68
|
: <a class="el" href="cJSON_8cpp.html#a90e6101bee79e6d18c535254695e91e3">cJSON.cpp</a>
|
|
69
69
|
</li>
|
|
70
|
-
<li>include()
|
|
71
|
-
: <a class="el" href="CMakeLists_8txt.html#a9f6d70f6197845162ae5fd12f33f094a">CMakeLists.txt</a>
|
|
72
|
-
</li>
|
|
73
70
|
<li>indent()
|
|
74
71
|
: <a class="el" href="DCHG_8cpp.html#a6673217180d3b6fb73c7c6387777f269">DCHG.cpp</a>
|
|
75
72
|
</li>
|
|
@@ -139,8 +136,8 @@ $(function() {
|
|
|
139
136
|
: <a class="el" href="extapi_8c.html#adaf3aadefe3fc4fb07b6be0d7b880f53">extapi.c</a>
|
|
140
137
|
</li>
|
|
141
138
|
<li>item
|
|
142
|
-
: <a class="el" href="
|
|
143
|
-
, <a class="el" href="
|
|
139
|
+
: <a class="el" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">cJSON.h</a>
|
|
140
|
+
, <a class="el" href="cJSON_8cpp.html#ac011de571ff16ba220d2e0d757e4e8b0">cJSON.cpp</a>
|
|
144
141
|
</li>
|
|
145
142
|
</ul>
|
|
146
143
|
</div><!-- contents -->
|