Browse Source

Use CPack to build source and Debian package

Co-authored-by: Lucino772 <lucapalmi772@gmail.com>
pull/276/head
Jonathan GUILLOT 2 months ago
committed by Jonathan GUILLOT
parent
commit
e75262f8f3
3 changed files with 41 additions and 3 deletions
  1. +39
    -1
      CMakeLists.txt
  2. +1
    -1
      devLib/CMakeLists.txt
  3. +1
    -1
      wiringPi/CMakeLists.txt

+ 39
- 1
CMakeLists.txt View File

@@ -4,7 +4,13 @@ project(WiringPiLib)
# Read version from version.h
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/version.h" WIRINGPI_VERSION)
string(REGEX REPLACE ".*VERSION \"([0-9]+.[0-9]+)\".*" "\\1" WIRINGPI_VERSION "${WIRINGPI_VERSION}")
string(REGEX REPLACE "([0-9]+)\..*" "\\1" WIRINGPI_SOVERSION "${WIRINGPI_VERSION}")

if(NOT WIRINGPI_VERSION MATCHES "([0-9]+)\.([0-9]+)")
message(FATAL_ERROR "Could not retrieve WiringPi versions")
endif()

set(WIRINGPI_VERSION_MAJOR ${CMAKE_MATCH_1})
set(WIRINGPI_VERSION_MINOR ${CMAKE_MATCH_2})

# Include subdirectories
add_subdirectory(devLib)
@@ -12,3 +18,35 @@ add_subdirectory(gpio)
#add_subdirectory(pins)
add_subdirectory(wiringPi)
#add_subdirectory(wiringPiD)

# CPack
set(CPACK_PACKAGE_NAME "wiringpi")
set(CPACK_PACKAGE_DESCRIPTION
"The wiringPi libraries, headers and gpio command
Libraries to allow GPIO access on a Raspberry Pi from C and C++
programs as well as from the command-line")

set(CPACK_DEBIAN_PACKAGE_SECTION "libraries")
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/WiringPi/WiringPi")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.LESSER")
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
set(CPACK_PACKAGE_VERSION_MAJOR ${WIRINGPI_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${WIRINGPI_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH "")

set(CPACK_GENERATOR "DEB")
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Grazer Computer Club - GC2 <wiringpi@gc2.at>")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libcrypt1")

# Check for arm or arm64 architecture
# Let CMake determine a value otherwise
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf")
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64")
endif()

set(CPACK_SOURCE_GENERATOR "TGZ")

include(CPack)

+ 1
- 1
devLib/CMakeLists.txt View File

@@ -31,7 +31,7 @@ target_include_directories(wiringPiDev PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(wiringPiDev PRIVATE wiringPi)

# Set the library version
set_target_properties(wiringPiDev PROPERTIES VERSION ${WIRINGPI_VERSION} SOVERSION ${WIRINGPI_SOVERSION})
set_target_properties(wiringPiDev PROPERTIES VERSION ${WIRINGPI_VERSION} SOVERSION ${WIRINGPI_VERSION_MAJOR})

# Install headers
install(FILES ${HEADERS} DESTINATION include)


+ 1
- 1
wiringPi/CMakeLists.txt View File

@@ -49,7 +49,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat=2 -Winline -pipe -Wfo
add_library(wiringPi SHARED ${SRC})

# Set the library version
set_target_properties(wiringPi PROPERTIES VERSION ${WIRINGPI_VERSION} SOVERSION ${WIRINGPI_SOVERSION})
set_target_properties(wiringPi PROPERTIES VERSION ${WIRINGPI_VERSION} SOVERSION ${WIRINGPI_VERSION_MAJOR})
target_include_directories(wiringPi PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

# Add -lm to link with the math library


Loading…
Cancel
Save