1
1
# Library
2
2
file (GLOB_RECURSE sources "*.cpp" "*.h" )
3
3
list (REMOVE_ITEM sources
4
- ${CMAKE_CURRENT_SOURCE_DIR} /cbmc_main.cpp
5
- )
4
+ ${CMAKE_CURRENT_SOURCE_DIR} /cbmc_main.cpp
5
+ )
6
6
add_library (cbmc-lib ${sources} )
7
7
8
8
generic_includes(cbmc-lib)
9
9
10
10
target_link_libraries (cbmc-lib
11
- analyses
12
- ansi-c
13
- assembler
14
- big-int
15
- cpp
16
- goto-checker
17
- goto-instrument-lib
18
- goto-programs
19
- goto-symex
20
- json
21
- json-symtab-language
22
- langapi
23
- linking
24
- pointer-analysis
25
- solvers
26
- statement-list
27
- util
28
- xml
29
- )
11
+ analyses
12
+ ansi-c
13
+ assembler
14
+ big-int
15
+ cpp
16
+ goto-checker
17
+ goto-instrument-lib
18
+ goto-programs
19
+ goto-symex
20
+ json
21
+ json-symtab-language
22
+ langapi
23
+ linking
24
+ pointer-analysis
25
+ solvers
26
+ statement-list
27
+ util
28
+ xml
29
+ )
30
30
31
31
add_if_library(cbmc-lib bv_refinement)
32
32
add_if_library(cbmc-lib jsil)
33
33
34
34
# Executable
35
35
add_executable (cbmc cbmc_main.cpp)
36
36
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" )
37
- # There is a cyclic dependency between analyses and ansi-c, which the
38
- # Makefile-based build system resolves by using --start-group, --end-group.
39
- # CMake lacks direct support (cf.
40
- # https://gitlab.kitware.com/cmake/cmake/-/issues/21511), so we ensure all
41
- # object files from libanalyses.a remain present.
42
- target_link_libraries (cbmc
43
- cbmc-lib
44
- -Wl,--whole-archive -Wl,${CMAKE_BINARY_DIR} /lib/libanalyses.a -Wl,--no -whole-archive
45
- )
37
+ # There is a cyclic dependency between analyses and ansi-c, which the
38
+ # Makefile-based build system resolves by using --start-group, --end-group.
39
+ # CMake lacks direct support (cf.
40
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/21511), so we ensure all
41
+ # object files from libanalyses.a remain present.
42
+ target_link_libraries (cbmc
43
+ cbmc-lib
44
+ -Wl,--whole-archive -Wl,${CMAKE_BINARY_DIR} /lib/libanalyses.a -Wl,--no -whole-archive
45
+ )
46
46
else ()
47
- target_link_libraries (cbmc cbmc-lib)
47
+ target_link_libraries (cbmc cbmc-lib)
48
48
endif ()
49
49
install (TARGETS cbmc DESTINATION ${CMAKE_INSTALL_BINDIR} )
50
50
51
51
# Man page
52
52
if (NOT WIN32 )
53
53
install (
54
- DIRECTORY ${CMAKE_SOURCE_DIR} /doc /man/
55
- DESTINATION ${CMAKE_INSTALL_MANDIR} /man1
56
- FILES_MATCHING PATTERN "cbmc*" )
54
+ DIRECTORY ${CMAKE_SOURCE_DIR} /doc /man/
55
+ DESTINATION ${CMAKE_INSTALL_MANDIR} /man1
56
+ FILES_MATCHING PATTERN "cbmc*" )
57
57
endif ()
58
58
59
59
# bash completion
60
60
if (NOT WIN32 )
61
- add_custom_command (OUTPUT "${CMAKE_CURRENT_SOURCE_DIR} /../.. /scripts/bash-autocomplete/cbmc.sh"
62
- COMMAND "${CMAKE_CURRENT_SOURCE_DIR} /../.. /scripts/bash-autocomplete/extract_switches.sh"
63
- DEPENDS $<TARGET_FILE:cbmc>
64
- )
61
+ add_custom_command (OUTPUT "${CBMC_ROOT_DIR} /scripts/bash-autocomplete/cbmc.sh"
62
+ COMMAND "${CBMC_ROOT_DIR} /scripts/bash-autocomplete/extract_switches.sh"
63
+ DEPENDS $<TARGET_FILE:cbmc>
64
+ )
65
65
add_custom_target (cbmc.sh ALL
66
- DEPENDS "${CMAKE_CURRENT_SOURCE_DIR} /../.. /scripts/bash-autocomplete/cbmc.sh"
67
- )
66
+ DEPENDS "${CBMC_ROOT_DIR} /scripts/bash-autocomplete/cbmc.sh"
67
+ )
68
68
install (
69
- FILES ${CMAKE_CURRENT_SOURCE_DIR} /../.. /scripts/bash-autocomplete/cbmc.sh
70
- DESTINATION etc/bash_completion.d
71
- RENAME cbmc
69
+ FILES ${CBMC_ROOT_DIR} /scripts/bash-autocomplete/cbmc.sh
70
+ DESTINATION etc/bash_completion.d
71
+ RENAME cbmc
72
72
)
73
- endif ()
73
+ endif ()
0 commit comments