Skip to content

Commit df9ef23

Browse files
authored
Merge pull request #5320 from markrtuttle/cmake-install-target
Add cmake install target
2 parents 4ca4239 + 9020b73 commit df9ef23

File tree

10 files changed

+134
-0
lines changed

10 files changed

+134
-0
lines changed

.travis.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,37 @@ jobs:
338338
- WITH_MEMORY_ANALYZER=1
339339
script: echo "This is coverity build. No need for tests."
340340

341+
# cmake install test
342+
- stage: Test different OS/CXX/Flags
343+
os: linux
344+
dist: trusty
345+
sudo: false
346+
compiler: gcc
347+
cache: ccache
348+
env:
349+
- NAME="cmake install test"
350+
- BINARIES="cbmc goto-cc goto-gcc goto-ld goto-instrument goto-analyzer goto-diff goto-harness jbmc janalyzer jdiff"
351+
addons:
352+
apt:
353+
sources:
354+
- ubuntu-toolchain-r-test
355+
packages:
356+
- g++-5
357+
- maven
358+
install:
359+
- ccache -z
360+
- ccache --max-size=1G
361+
- cmake --version
362+
- cmake -S . -Bbuild '-DCMAKE_CXX_COMPILER=/usr/bin/g++-5' '-DCMAKE_INSTALL_PREFIX=install'
363+
- cmake --build build -- -j4
364+
- pushd build; make install; popd
365+
script: |
366+
for b in $BINARIES; do
367+
( echo === $b === &&
368+
install/bin/$b --version &&
369+
man -M install/share/man $b | head ) || exit 1 ;
370+
done
371+
341372
install:
342373
- ccache -z
343374
- ccache --max-size=1G

jbmc/src/janalyzer/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,12 @@ target_link_libraries(janalyzer-lib
2424
# Executable
2525
add_executable(janalyzer janalyzer_main.cpp)
2626
target_link_libraries(janalyzer janalyzer-lib)
27+
install(TARGETS janalyzer DESTINATION ${CMAKE_INSTALL_BINDIR})
28+
29+
# Symlink man page to cbmc man page until a real man page is written
30+
install(CODE "execute_process( \
31+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
32+
cbmc.1 \
33+
${CMAKE_INSTALL_FULL_MANDIR}/man1/janalyzer.1 \
34+
)"
35+
)

jbmc/src/jbmc/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,12 @@ target_link_libraries(jbmc-lib
3030
# Executable
3131
add_executable(jbmc jbmc_main.cpp)
3232
target_link_libraries(jbmc jbmc-lib)
33+
install(TARGETS jbmc DESTINATION ${CMAKE_INSTALL_BINDIR})
34+
35+
# Symlink man page to cbmc man page until a real man page is written
36+
install(CODE "execute_process( \
37+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
38+
cbmc.1 \
39+
${CMAKE_INSTALL_FULL_MANDIR}/man1/jbmc.1 \
40+
)"
41+
)

jbmc/src/jdiff/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,12 @@ target_link_libraries(jdiff-lib
2525
# Executable
2626
add_executable(jdiff jdiff_main.cpp)
2727
target_link_libraries(jdiff jdiff-lib)
28+
install(TARGETS jdiff DESTINATION ${CMAKE_INSTALL_BINDIR})
29+
30+
# Symlink man page to cbmc man page until a real man page is written
31+
install(CODE "execute_process( \
32+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
33+
cbmc.1 \
34+
${CMAKE_INSTALL_FULL_MANDIR}/man1/jdiff.1 \
35+
)"
36+
)

src/cbmc/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,10 @@ add_if_library(cbmc-lib jsil)
3434
# Executable
3535
add_executable(cbmc cbmc_main.cpp)
3636
target_link_libraries(cbmc cbmc-lib)
37+
install(TARGETS cbmc DESTINATION ${CMAKE_INSTALL_BINDIR})
38+
39+
# Man page
40+
if(NOT WIN32)
41+
install(FILES ${CMAKE_SOURCE_DIR}/doc/man/cbmc.1
42+
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
43+
endif()

src/goto-analyzer/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,12 @@ add_if_library(goto-analyzer-lib jsil)
2727
# Executable
2828
add_executable(goto-analyzer goto_analyzer_main.cpp)
2929
target_link_libraries(goto-analyzer goto-analyzer-lib)
30+
install(TARGETS goto-analyzer DESTINATION ${CMAKE_INSTALL_BINDIR})
31+
32+
# Symlink man page to cbmc man page until a real man page is written
33+
install(CODE "execute_process( \
34+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
35+
cbmc.1 \
36+
${CMAKE_INSTALL_FULL_MANDIR}/man1/goto-analyzer.1 \
37+
)"
38+
)

src/goto-cc/CMakeLists.txt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ target_link_libraries(goto-cc goto-cc-lib)
2828

2929
if(WIN32)
3030
set_target_properties(goto-cc PROPERTIES OUTPUT_NAME goto-cl)
31+
install(TARGETS goto-cl DESTINATION ${CMAKE_INSTALL_BINDIR})
3132
else()
3233
add_custom_command(TARGET goto-cc
3334
POST_BUILD
@@ -39,4 +40,36 @@ else()
3940
COMMAND "${CMAKE_COMMAND}" -E create_symlink
4041
goto-cc $<TARGET_FILE_DIR:goto-cc>/goto-ld
4142
BYPRODUCTS ${CMAKE_BINARY_DIR}/bin/goto-ld)
43+
install(TARGETS goto-cc DESTINATION ${CMAKE_INSTALL_BINDIR})
44+
install(CODE "execute_process( \
45+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
46+
goto-cc \
47+
${CMAKE_INSTALL_FULL_BINDIR}/goto-gcc \
48+
)"
49+
)
50+
install(CODE "execute_process( \
51+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
52+
goto-cc \
53+
${CMAKE_INSTALL_FULL_BINDIR}/goto-ld \
54+
)"
55+
)
56+
# Symlink man page to cbmc man page until a real man page is written
57+
install(CODE "execute_process( \
58+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
59+
cbmc.1 \
60+
${CMAKE_INSTALL_FULL_MANDIR}/man1/goto-cc.1 \
61+
)"
62+
)
63+
install(CODE "execute_process( \
64+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
65+
cbmc.1 \
66+
${CMAKE_INSTALL_FULL_MANDIR}/man1/goto-gcc.1 \
67+
)"
68+
)
69+
install(CODE "execute_process( \
70+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
71+
cbmc.1 \
72+
${CMAKE_INSTALL_FULL_MANDIR}/man1/goto-ld.1 \
73+
)"
74+
)
4275
endif()

src/goto-diff/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,12 @@ add_if_library(goto-diff-lib jsil)
2828
# Executable
2929
add_executable(goto-diff goto_diff_main.cpp)
3030
target_link_libraries(goto-diff goto-diff-lib)
31+
install(TARGETS goto-diff DESTINATION ${CMAKE_INSTALL_BINDIR})
32+
33+
# Symlink man page to cbmc man page until a real man page is written
34+
install(CODE "execute_process( \
35+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
36+
cbmc.1 \
37+
${CMAKE_INSTALL_FULL_MANDIR}/man1/goto-diff.1 \
38+
)"
39+
)

src/goto-harness/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,12 @@ target_link_libraries(goto-harness
99
json
1010
json-symtab-language
1111
)
12+
install(TARGETS goto-harness DESTINATION ${CMAKE_INSTALL_BINDIR})
13+
14+
# Symlink man page to cbmc man page until a real man page is written
15+
install(CODE "execute_process( \
16+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
17+
cbmc.1 \
18+
${CMAKE_INSTALL_FULL_MANDIR}/man1/goto-harness.1 \
19+
)"
20+
)

src/goto-instrument/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,12 @@ add_if_library(goto-instrument-lib glpk)
2929
# Executable
3030
add_executable(goto-instrument goto_instrument_main.cpp)
3131
target_link_libraries(goto-instrument goto-instrument-lib)
32+
install(TARGETS goto-instrument DESTINATION ${CMAKE_INSTALL_BINDIR})
33+
34+
# Symlink man page to cbmc man page until a real man page is written
35+
install(CODE "execute_process( \
36+
COMMAND ${CMAKE_COMMAND} -E create_symlink \
37+
cbmc.1 \
38+
${CMAKE_INSTALL_FULL_MANDIR}/man1/goto-instrument.1 \
39+
)"
40+
)

0 commit comments

Comments
 (0)