Skip to content

Commit 3f1fa82

Browse files
committed
Packaging
1 parent fb658ce commit 3f1fa82

File tree

7 files changed

+87
-2
lines changed

7 files changed

+87
-2
lines changed

CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
cmake_minimum_required(VERSION 3.15)
22

3+
set (LLVM2GRAPHML_VERSION 0.1.0)
4+
35
project(llvm2graphml
4-
VERSION 0.1.0
5-
LANGUAGES C CXX
6+
VERSION ${LLVM2GRAPHML_VERSION}
7+
LANGUAGES CXX
68
)
79

10+
set (PROJECT_DESCRIPTION "llvm2graphml converts LLVM Bitcode to GraphML")
11+
set (PROJECT_HOMEPAGE_URL "https://github.com/ShiftLeftSecurity/llvm2graphml")
12+
813
include(${CMAKE_CURRENT_LIST_DIR}/build-system/build-system.cmake)
914

1015
add_subdirectory(src)

LICENSE

Whitespace-only changes.

build-system/build-system.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ set (CMAKE_CXX_STANDARD_REQUIRED ON)
33
set (CMAKE_CXX_EXTENSIONS OFF)
44

55
include(${CMAKE_CURRENT_LIST_DIR}/vendor/vendor.cmake)
6+
include(${CMAKE_CURRENT_LIST_DIR}/cpack.cmake)
67

78
set (LLVM2GRAPHML_INCLUDE_DIRS
89
${CMAKE_SOURCE_DIR}/include

build-system/cpack.cmake

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
set (CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
2+
set (CPACK_PACKAGE_VENDOR Shiftleft)
3+
set (CPACK_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
4+
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION})
5+
set (CPACK_PACKAGE_CONTACT "Alex Denisov <[email protected]>")
6+
set (CPACK_PACKAGE_HOMEPAGE_URL ${PROJECT_HOMEPAGE_URL})
7+
8+
set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
9+
set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
10+
set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
11+
set (CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
12+
13+
set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt")
14+
configure_file(${CMAKE_SOURCE_DIR}/LICENSE ${CPACK_RESOURCE_FILE_LICENSE})
15+
16+
if (APPLE)
17+
set (CPACK_SYSTEM_NAME "macOS")
18+
execute_process(
19+
COMMAND sw_vers -productVersion
20+
OUTPUT_VARIABLE CPACK_SYSTEM_VERSION
21+
OUTPUT_STRIP_TRAILING_WHITESPACE
22+
)
23+
24+
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
25+
set (CPACK_SYSTEM_NAME "FreeBSD")
26+
execute_process(
27+
COMMAND freebsd-version
28+
OUTPUT_VARIABLE CPACK_SYSTEM_VERSION
29+
OUTPUT_STRIP_TRAILING_WHITESPACE
30+
)
31+
32+
else()
33+
if(EXISTS /etc/os-release)
34+
file(READ /etc/os-release OS_RELEASE)
35+
string(REGEX REPLACE "\r?\n" ";" LINES "${OS_RELEASE}")
36+
37+
foreach(LINE ${LINES})
38+
string(REGEX MATCH "^ID=\"?([A-Za-z0-9._-]+)\"?" match ${LINE}})
39+
if (match)
40+
set (CPACK_SYSTEM_NAME ${CMAKE_MATCH_1})
41+
endif()
42+
43+
string(REGEX MATCH "^VERSION_ID=\"?([A-Za-z0-9._-]+)\"?" match ${LINE}})
44+
if (match)
45+
set (CPACK_SYSTEM_VERSION ${CMAKE_MATCH_1})
46+
endif()
47+
endforeach()
48+
49+
else()
50+
set (CPACK_SYSTEM_NAME "unknown")
51+
52+
endif()
53+
endif()
54+
55+
if (${CPACK_SYSTEM_NAME} STREQUAL "macOS")
56+
include(${CMAKE_CURRENT_LIST_DIR}/packaging/cpack.ZIP-macOS.cmake)
57+
elseif(${CPACK_SYSTEM_NAME} STREQUAL "ubuntu")
58+
include(${CMAKE_CURRENT_LIST_DIR}/packaging/cpack.DEB-ubuntu.cmake)
59+
else()
60+
message(WARNING "llvm2graphml cannot generate package for ${CPACK_SYSTEM_NAME} yet.")
61+
endif()
62+
63+
set (LLVM2GRAPHML_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-LLVM-${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}-${CPACK_SYSTEM_NAME}-${CPACK_SYSTEM_VERSION}")
64+
65+
set (CPACK_PACKAGE_FILE_NAME ${LLVM2GRAPHML_PACKAGE_FILE_NAME})
66+
67+
include(CPack)
68+
69+
file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/PACKAGE_FILE_NAME ${LLVM2GRAPHML_PACKAGE_FILE_NAME})
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
set (CPACK_GENERATOR DEB)
2+
3+
set (CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT})
4+
set (CPACK_DEBIAN_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
5+
6+
set (CPACK_DEBIAN_PACKAGE_DEPENDS "zlib1g, libncurses5, libstdc++6, libxml2")
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
set (CPACK_GENERATOR "ZIP")

src/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,6 @@ target_link_directories(llvm2graphml PRIVATE /usr/local/lib)
2525
target_include_directories(llvm2graphml PRIVATE ${LLVM2GRAPHML_INCLUDE_DIRS})
2626
target_compile_options(llvm2graphml PRIVATE ${LLVM2GRAPHML_CXX_FLAGS})
2727
target_compile_definitions(llvm2graphml PUBLIC SPDLOG_NO_EXCEPTIONS)
28+
install(TARGETS llvm2graphml
29+
RUNTIME DESTINATION bin
30+
)

0 commit comments

Comments
 (0)