mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
gnu: qrcodegen-cpp: Update to 1.8.0.
* gnu/packages/aidc.scm (qrcodegen-cpp): Update to 1.8.0. [source]: Use qrcodegen-cpp-cmake.patch. [build-system]: Switch to cmake-build-system. [arguments]: Enable tests and build shared libraries. * gnu/packages/patches/qrcodegen-cpp-make-install.patch: Remove file. * gnu/packages/patches/qrcodegen-cpp-cmake.patch: New file. * gnu/local.mk (dist_patch_DATA): Register patch. Change-Id: I0272a28ab2cda89700b5523e96f3014eff7ebf65 Signed-off-by: Andrew Tropin <andrew@trop.in>
This commit is contained in:
parent
3863c0b8c1
commit
56cc832d07
4 changed files with 514 additions and 464 deletions
|
@ -2050,7 +2050,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/qemu-glibc-2.27.patch \
|
||||
%D%/packages/patches/qemu-glibc-2.30.patch \
|
||||
%D%/packages/patches/qemu-fix-agent-paths.patch \
|
||||
%D%/packages/patches/qrcodegen-cpp-make-install.patch \
|
||||
%D%/packages/patches/qrcodegen-cpp-cmake.patch \
|
||||
%D%/packages/patches/qtbase-absolute-runpath.patch \
|
||||
%D%/packages/patches/qtbase-find-tools-in-PATH.patch \
|
||||
%D%/packages/patches/qtbase-qmake-fix-includedir.patch \
|
||||
|
|
|
@ -228,30 +228,22 @@ (define-public zbar
|
|||
(define-public qrcodegen-cpp
|
||||
(package
|
||||
(name "qrcodegen-cpp")
|
||||
(version "1.6.0")
|
||||
(version "1.8.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nayuki/QR-Code-generator")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(patches (search-patches "qrcodegen-cpp-make-install.patch"))
|
||||
(patches (search-patches "qrcodegen-cpp-cmake.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0iq9sv9na0vg996aqrxrjn9rrbiyy7sc9vslw945p3ky22pw3lql"))))
|
||||
(build-system gnu-build-system)
|
||||
"0dk9ci5gchxa8gh0hyhlj3d5jwxqlnfm85xyp791ldaia14bkj39"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; No ./configure script
|
||||
;; Only build the C++ variant.
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "cpp")
|
||||
#t)))))
|
||||
(list #:configure-flags
|
||||
#~'("-DBUILD_TESTS=ON"
|
||||
"-DBUILD_SHARED_LIBS=ON")))
|
||||
(synopsis "QR Code generator library")
|
||||
(description "qrcodegen-cpp is a QR code generator library in C++. The
|
||||
project also offers Java, Javascript, Python, C, and Rust implementations.")
|
||||
|
|
506
gnu/packages/patches/qrcodegen-cpp-cmake.patch
Normal file
506
gnu/packages/patches/qrcodegen-cpp-cmake.patch
Normal file
|
@ -0,0 +1,506 @@
|
|||
From 283d6a4bae95f42aaccd9ddd06d16c2e33ed4abf Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Zaitsev <vitaly@easycoding.org>
|
||||
Date: Thu, 21 Apr 2022 15:36:23 +0200
|
||||
Subject: [PATCH 1/2] Implemented CMake build support.
|
||||
|
||||
Co-authored-by: leha-bot <leha-bot@users.noreply.github.com>
|
||||
Signed-off-by: Vitaly Zaitsev <vitaly@easycoding.org>
|
||||
---
|
||||
CMakeLists.txt | 235 +++++++++++++++++++++++++++++
|
||||
c/Makefile | 88 -----------
|
||||
cmake/qrcodegen-config.cmake.in | 4 +
|
||||
cmake/qrcodegen.pc.in | 11 ++
|
||||
cmake/qrcodegencpp-config.cmake.in | 4 +
|
||||
cmake/qrcodegencpp.pc.in | 11 ++
|
||||
cpp/Makefile | 84 -----------
|
||||
7 files changed, 265 insertions(+), 172 deletions(-)
|
||||
create mode 100644 CMakeLists.txt
|
||||
delete mode 100644 c/Makefile
|
||||
create mode 100644 cmake/qrcodegen-config.cmake.in
|
||||
create mode 100644 cmake/qrcodegen.pc.in
|
||||
create mode 100644 cmake/qrcodegencpp-config.cmake.in
|
||||
create mode 100644 cmake/qrcodegencpp.pc.in
|
||||
delete mode 100644 cpp/Makefile
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
new file mode 100644
|
||||
index 0000000..b07197f
|
||||
--- /dev/null
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -0,0 +1,235 @@
|
||||
+# ==============================
|
||||
+# === Project initialization ===
|
||||
+# ==============================
|
||||
+
|
||||
+cmake_minimum_required(VERSION 3.12)
|
||||
+
|
||||
+project(QR-Code-generator
|
||||
+ VERSION 1.8.0
|
||||
+ DESCRIPTION "High-quality QR Code generator library in Java, TypeScript/JavaScript, Python, C++, C, Rust"
|
||||
+ HOMEPAGE_URL "https://www.nayuki.io/page/qr-code-generator-library"
|
||||
+ LANGUAGES C CXX
|
||||
+)
|
||||
+
|
||||
+set(CMAKE_CXX_STANDARD 11)
|
||||
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
+
|
||||
+# =======================
|
||||
+# === Project options ===
|
||||
+# =======================
|
||||
+
|
||||
+option(BUILD_EXAMPLES "Build examples and demos" OFF)
|
||||
+option(BUILD_TESTS "Build and run unit tests" OFF)
|
||||
+
|
||||
+# =======================
|
||||
+# === Paths detection ===
|
||||
+# =======================
|
||||
+
|
||||
+include(GNUInstallDirs)
|
||||
+
|
||||
+# ============================
|
||||
+# === CMake config helpers ===
|
||||
+# ============================
|
||||
+
|
||||
+include(CMakePackageConfigHelpers)
|
||||
+
|
||||
+# ========================
|
||||
+# === C library target ===
|
||||
+# ========================
|
||||
+
|
||||
+set(QRCODEGEN_NAME "qrcodegen")
|
||||
+
|
||||
+set(QRCODEGEN_SOURCES
|
||||
+ c/qrcodegen.c
|
||||
+)
|
||||
+
|
||||
+set(QRCODEGEN_HEADERS
|
||||
+ c/qrcodegen.h
|
||||
+)
|
||||
+
|
||||
+add_library(${QRCODEGEN_NAME}
|
||||
+ ${QRCODEGEN_SOURCES}
|
||||
+ ${QRCODEGEN_HEADERS}
|
||||
+)
|
||||
+
|
||||
+target_include_directories(${QRCODEGEN_NAME} PUBLIC
|
||||
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/c>
|
||||
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${QRCODEGEN_NAME}>
|
||||
+)
|
||||
+
|
||||
+set_property(TARGET ${QRCODEGEN_NAME} PROPERTY PUBLIC_HEADER ${QRCODEGEN_HEADERS})
|
||||
+set_property(TARGET ${QRCODEGEN_NAME} PROPERTY VERSION ${CMAKE_PROJECT_VERSION})
|
||||
+set_property(TARGET ${QRCODEGEN_NAME} PROPERTY SOVERSION 1)
|
||||
+
|
||||
+install(TARGETS ${QRCODEGEN_NAME}
|
||||
+ EXPORT ${QRCODEGEN_NAME}-targets
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${QRCODEGEN_NAME}
|
||||
+)
|
||||
+
|
||||
+configure_package_config_file(cmake/${QRCODEGEN_NAME}-config.cmake.in
|
||||
+ ${QRCODEGEN_NAME}-config.cmake
|
||||
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGEN_NAME}
|
||||
+)
|
||||
+write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}-config-version.cmake
|
||||
+ COMPATIBILITY ExactVersion
|
||||
+)
|
||||
+
|
||||
+install(FILES
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}-config.cmake
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}-config-version.cmake
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGEN_NAME}
|
||||
+)
|
||||
+
|
||||
+install(EXPORT ${QRCODEGEN_NAME}-targets
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGEN_NAME}
|
||||
+ NAMESPACE ${QRCODEGEN_NAME}::
|
||||
+)
|
||||
+
|
||||
+configure_file(cmake/${QRCODEGEN_NAME}.pc.in
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}.pc
|
||||
+ @ONLY
|
||||
+)
|
||||
+
|
||||
+install(FILES
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}.pc
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||
+)
|
||||
+
|
||||
+# =========================
|
||||
+# === C examples target ===
|
||||
+# =========================
|
||||
+
|
||||
+if(BUILD_EXAMPLES)
|
||||
+ set(QRCODEGENDEMO_SOURCES
|
||||
+ c/qrcodegen-demo.c
|
||||
+ )
|
||||
+
|
||||
+ add_executable(${QRCODEGEN_NAME}-demo
|
||||
+ ${QRCODEGENDEMO_SOURCES}
|
||||
+ )
|
||||
+
|
||||
+ target_link_libraries(${QRCODEGEN_NAME}-demo PRIVATE
|
||||
+ ${QRCODEGEN_NAME}
|
||||
+ )
|
||||
+endif()
|
||||
+
|
||||
+# ======================
|
||||
+# === C tests target ===
|
||||
+# ======================
|
||||
+
|
||||
+if (BUILD_TESTS)
|
||||
+ set(QRCODEGENTEST_SOURCES
|
||||
+ c/qrcodegen-test.c
|
||||
+ )
|
||||
+
|
||||
+ add_library(${QRCODEGEN_NAME}-testable OBJECT
|
||||
+ ${QRCODEGEN_SOURCES}
|
||||
+ ${QRCODEGEN_HEADERS}
|
||||
+ )
|
||||
+
|
||||
+ target_compile_options(${QRCODEGEN_NAME}-testable PUBLIC
|
||||
+ -DQRCODEGEN_TEST
|
||||
+ )
|
||||
+
|
||||
+ add_executable(${QRCODEGEN_NAME}-test
|
||||
+ ${QRCODEGENTEST_SOURCES}
|
||||
+ )
|
||||
+
|
||||
+ target_link_libraries(${QRCODEGEN_NAME}-test PRIVATE
|
||||
+ ${QRCODEGEN_NAME}-testable
|
||||
+ )
|
||||
+
|
||||
+ add_test(NAME ${QRCODEGEN_NAME}-test COMMAND ${QRCODEGEN_NAME}-test)
|
||||
+endif()
|
||||
+
|
||||
+# ==========================
|
||||
+# === C++ library target ===
|
||||
+# ==========================
|
||||
+
|
||||
+set(QRCODEGENCPP_NAME "qrcodegencpp")
|
||||
+
|
||||
+set(QRCODEGENCPP_SOURCES
|
||||
+ cpp/qrcodegen.cpp
|
||||
+)
|
||||
+
|
||||
+set(QRCODEGENCPP_HEADERS
|
||||
+ cpp/qrcodegen.hpp
|
||||
+)
|
||||
+
|
||||
+add_library(${QRCODEGENCPP_NAME}
|
||||
+ ${QRCODEGENCPP_SOURCES}
|
||||
+ ${QRCODEGENCPP_HEADERS}
|
||||
+)
|
||||
+
|
||||
+target_include_directories(${QRCODEGENCPP_NAME} PUBLIC
|
||||
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/cpp>
|
||||
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${QRCODEGENCPP_NAME}>
|
||||
+)
|
||||
+
|
||||
+set_property(TARGET ${QRCODEGENCPP_NAME} PROPERTY PUBLIC_HEADER ${QRCODEGENCPP_HEADERS})
|
||||
+set_property(TARGET ${QRCODEGENCPP_NAME} PROPERTY VERSION ${CMAKE_PROJECT_VERSION})
|
||||
+set_property(TARGET ${QRCODEGENCPP_NAME} PROPERTY SOVERSION 1)
|
||||
+
|
||||
+install(TARGETS ${QRCODEGENCPP_NAME}
|
||||
+ EXPORT ${QRCODEGENCPP_NAME}-targets
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${QRCODEGENCPP_NAME}
|
||||
+)
|
||||
+
|
||||
+configure_package_config_file(cmake/${QRCODEGENCPP_NAME}-config.cmake.in
|
||||
+ ${QRCODEGENCPP_NAME}-config.cmake
|
||||
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGENCPP_NAME}
|
||||
+)
|
||||
+write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}-config-version.cmake
|
||||
+ COMPATIBILITY ExactVersion
|
||||
+)
|
||||
+
|
||||
+install(FILES
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}-config.cmake
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}-config-version.cmake
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGENCPP_NAME}
|
||||
+)
|
||||
+
|
||||
+install(EXPORT ${QRCODEGENCPP_NAME}-targets
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGENCPP_NAME}
|
||||
+ NAMESPACE ${QRCODEGENCPP_NAME}::
|
||||
+)
|
||||
+
|
||||
+configure_file(cmake/${QRCODEGENCPP_NAME}.pc.in
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}.pc
|
||||
+ @ONLY
|
||||
+)
|
||||
+
|
||||
+install(FILES
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}.pc
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||
+)
|
||||
+
|
||||
+# ===========================
|
||||
+# === C++ examples target ===
|
||||
+# ===========================
|
||||
+
|
||||
+if(BUILD_EXAMPLES)
|
||||
+ set(QRCODEGENCPPDEMO_SOURCES
|
||||
+ cpp/QrCodeGeneratorDemo.cpp
|
||||
+ )
|
||||
+
|
||||
+ add_executable(${QRCODEGENCPP_NAME}-demo
|
||||
+ ${QRCODEGENCPPDEMO_SOURCES}
|
||||
+ )
|
||||
+
|
||||
+ target_link_libraries(${QRCODEGENCPP_NAME}-demo PRIVATE
|
||||
+ ${QRCODEGENCPP_NAME}
|
||||
+ )
|
||||
+endif()
|
||||
+
|
||||
+# ====================
|
||||
+# === Tests export ===
|
||||
+# ====================
|
||||
+
|
||||
+if (BUILD_TESTS)
|
||||
+ enable_testing()
|
||||
+endif()
|
||||
diff --git a/c/Makefile b/c/Makefile
|
||||
deleted file mode 100644
|
||||
index 661b1f7..0000000
|
||||
--- a/c/Makefile
|
||||
+++ /dev/null
|
||||
@@ -1,88 +0,0 @@
|
||||
-#
|
||||
-# Makefile for QR Code generator (C)
|
||||
-#
|
||||
-# Copyright (c) Project Nayuki. (MIT License)
|
||||
-# https://www.nayuki.io/page/qr-code-generator-library
|
||||
-#
|
||||
-# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
-# this software and associated documentation files (the "Software"), to deal in
|
||||
-# the Software without restriction, including without limitation the rights to
|
||||
-# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
-# the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
-# subject to the following conditions:
|
||||
-# - The above copyright notice and this permission notice shall be included in
|
||||
-# all copies or substantial portions of the Software.
|
||||
-# - The Software is provided "as is", without warranty of any kind, express or
|
||||
-# implied, including but not limited to the warranties of merchantability,
|
||||
-# fitness for a particular purpose and noninfringement. In no event shall the
|
||||
-# authors or copyright holders be liable for any claim, damages or other
|
||||
-# liability, whether in an action of contract, tort or otherwise, arising from,
|
||||
-# out of or in connection with the Software or the use or other dealings in the
|
||||
-# Software.
|
||||
-#
|
||||
-
|
||||
-
|
||||
-# ---- Configuration options ----
|
||||
-
|
||||
-# External/implicit variables:
|
||||
-# - CC: The C compiler, such as gcc or clang.
|
||||
-# - CFLAGS: Any extra user-specified compiler flags (can be blank).
|
||||
-
|
||||
-# Recommended compiler flags:
|
||||
-CFLAGS += -std=c99 -O
|
||||
-
|
||||
-# Extra flags for diagnostics:
|
||||
-# CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
|
||||
-
|
||||
-
|
||||
-# ---- Controlling make ----
|
||||
-
|
||||
-# Clear default suffix rules
|
||||
-.SUFFIXES:
|
||||
-
|
||||
-# Don't delete object files
|
||||
-.SECONDARY:
|
||||
-
|
||||
-# Stuff concerning goals
|
||||
-.DEFAULT_GOAL = all
|
||||
-.PHONY: all clean
|
||||
-
|
||||
-
|
||||
-# ---- Targets to build ----
|
||||
-
|
||||
-LIB = qrcodegen
|
||||
-LIBFILE = lib$(LIB).a
|
||||
-LIBOBJ = qrcodegen.o
|
||||
-MAINS = qrcodegen-demo qrcodegen-test
|
||||
-
|
||||
-# Build all binaries
|
||||
-all: $(LIBFILE) $(MAINS)
|
||||
-
|
||||
-# Delete build output
|
||||
-clean:
|
||||
- rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
|
||||
- rm -rf .deps
|
||||
-
|
||||
-# Executable files
|
||||
-%: %.o $(LIBFILE)
|
||||
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB)
|
||||
-
|
||||
-# Special executable
|
||||
-qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c)
|
||||
- $(CC) $(CFLAGS) $(LDFLAGS) -DQRCODEGEN_TEST -o $@ $^
|
||||
-
|
||||
-# The library
|
||||
-$(LIBFILE): $(LIBOBJ)
|
||||
- $(AR) -crs $@ -- $^
|
||||
-
|
||||
-# Object files
|
||||
-%.o: %.c .deps/timestamp
|
||||
- $(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
|
||||
-
|
||||
-# Have a place to store header dependencies automatically generated by compiler
|
||||
-.deps/timestamp:
|
||||
- mkdir -p .deps
|
||||
- touch .deps/timestamp
|
||||
-
|
||||
-# Make use of said dependencies if available
|
||||
--include .deps/*.d
|
||||
diff --git a/cmake/qrcodegen-config.cmake.in b/cmake/qrcodegen-config.cmake.in
|
||||
new file mode 100644
|
||||
index 0000000..0b82c63
|
||||
--- /dev/null
|
||||
+++ b/cmake/qrcodegen-config.cmake.in
|
||||
@@ -0,0 +1,4 @@
|
||||
+@PACKAGE_INIT@
|
||||
+
|
||||
+include("${CMAKE_CURRENT_LIST_DIR}/@QRCODEGEN_NAME@-targets.cmake")
|
||||
+check_required_components(@QRCODEGEN_NAME@)
|
||||
diff --git a/cmake/qrcodegen.pc.in b/cmake/qrcodegen.pc.in
|
||||
new file mode 100644
|
||||
index 0000000..c68955b
|
||||
--- /dev/null
|
||||
+++ b/cmake/qrcodegen.pc.in
|
||||
@@ -0,0 +1,11 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+exec_prefix=${prefix}
|
||||
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@QRCODEGEN_NAME@
|
||||
+
|
||||
+Name: @QRCODEGEN_NAME@
|
||||
+Description: @CMAKE_PROJECT_DESCRIPTION@
|
||||
+Version: @CMAKE_PROJECT_VERSION@
|
||||
+
|
||||
+Libs: -L${libdir} -l@QRCODEGEN_NAME@
|
||||
+Cflags: -I${includedir}
|
||||
diff --git a/cmake/qrcodegencpp-config.cmake.in b/cmake/qrcodegencpp-config.cmake.in
|
||||
new file mode 100644
|
||||
index 0000000..3d18f99
|
||||
--- /dev/null
|
||||
+++ b/cmake/qrcodegencpp-config.cmake.in
|
||||
@@ -0,0 +1,4 @@
|
||||
+@PACKAGE_INIT@
|
||||
+
|
||||
+include("${CMAKE_CURRENT_LIST_DIR}/@QRCODEGENCPP_NAME@-targets.cmake")
|
||||
+check_required_components(@QRCODEGENCPP_NAME@)
|
||||
diff --git a/cmake/qrcodegencpp.pc.in b/cmake/qrcodegencpp.pc.in
|
||||
new file mode 100644
|
||||
index 0000000..89db084
|
||||
--- /dev/null
|
||||
+++ b/cmake/qrcodegencpp.pc.in
|
||||
@@ -0,0 +1,11 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+exec_prefix=${prefix}
|
||||
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@QRCODEGENCPP_NAME@
|
||||
+
|
||||
+Name: @QRCODEGENCPP_NAME@
|
||||
+Description: @CMAKE_PROJECT_DESCRIPTION@
|
||||
+Version: @CMAKE_PROJECT_VERSION@
|
||||
+
|
||||
+Libs: -L${libdir} -l@QRCODEGENCPP_NAME@
|
||||
+Cflags: -I${includedir}
|
||||
diff --git a/cpp/Makefile b/cpp/Makefile
|
||||
deleted file mode 100644
|
||||
index 57dc0bf..0000000
|
||||
--- a/cpp/Makefile
|
||||
+++ /dev/null
|
||||
@@ -1,84 +0,0 @@
|
||||
-#
|
||||
-# Makefile for QR Code generator (C++)
|
||||
-#
|
||||
-# Copyright (c) Project Nayuki. (MIT License)
|
||||
-# https://www.nayuki.io/page/qr-code-generator-library
|
||||
-#
|
||||
-# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
-# this software and associated documentation files (the "Software"), to deal in
|
||||
-# the Software without restriction, including without limitation the rights to
|
||||
-# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
-# the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
-# subject to the following conditions:
|
||||
-# - The above copyright notice and this permission notice shall be included in
|
||||
-# all copies or substantial portions of the Software.
|
||||
-# - The Software is provided "as is", without warranty of any kind, express or
|
||||
-# implied, including but not limited to the warranties of merchantability,
|
||||
-# fitness for a particular purpose and noninfringement. In no event shall the
|
||||
-# authors or copyright holders be liable for any claim, damages or other
|
||||
-# liability, whether in an action of contract, tort or otherwise, arising from,
|
||||
-# out of or in connection with the Software or the use or other dealings in the
|
||||
-# Software.
|
||||
-#
|
||||
-
|
||||
-
|
||||
-# ---- Configuration options ----
|
||||
-
|
||||
-# External/implicit variables:
|
||||
-# - CXX: The C++ compiler, such as g++ or clang++.
|
||||
-# - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
|
||||
-
|
||||
-# Recommended compiler flags:
|
||||
-CXXFLAGS += -std=c++11 -O
|
||||
-
|
||||
-# Extra flags for diagnostics:
|
||||
-# CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
|
||||
-
|
||||
-
|
||||
-# ---- Controlling make ----
|
||||
-
|
||||
-# Clear default suffix rules
|
||||
-.SUFFIXES:
|
||||
-
|
||||
-# Don't delete object files
|
||||
-.SECONDARY:
|
||||
-
|
||||
-# Stuff concerning goals
|
||||
-.DEFAULT_GOAL = all
|
||||
-.PHONY: all clean
|
||||
-
|
||||
-
|
||||
-# ---- Targets to build ----
|
||||
-
|
||||
-LIB = qrcodegencpp
|
||||
-LIBFILE = lib$(LIB).a
|
||||
-LIBOBJ = qrcodegen.o
|
||||
-MAINS = QrCodeGeneratorDemo
|
||||
-
|
||||
-# Build all binaries
|
||||
-all: $(LIBFILE) $(MAINS)
|
||||
-
|
||||
-# Delete build output
|
||||
-clean:
|
||||
- rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
|
||||
- rm -rf .deps
|
||||
-
|
||||
-# Executable files
|
||||
-%: %.o $(LIBFILE)
|
||||
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB)
|
||||
-
|
||||
-# The library
|
||||
-$(LIBFILE): $(LIBOBJ)
|
||||
- $(AR) -crs $@ -- $^
|
||||
-
|
||||
-# Object files
|
||||
-%.o: %.cpp .deps/timestamp
|
||||
- $(CXX) $(CXXFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
|
||||
-
|
||||
-# Have a place to store header dependencies automatically generated by compiler
|
||||
-.deps/timestamp:
|
||||
- mkdir -p .deps
|
||||
- touch .deps/timestamp
|
||||
-
|
||||
-# Make use of said dependencies if available
|
||||
--include .deps/*.d
|
||||
--
|
||||
2.41.0
|
||||
|
|
@ -1,448 +0,0 @@
|
|||
Make the library installable. Patch copied from pull request:
|
||||
|
||||
https://github.com/nayuki/QR-Code-generator/pull/72
|
||||
|
||||
From 1625fc1665e1f83eb73c0f5670dcfda96dc0b3e4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
|
||||
Date: Tue, 3 Dec 2019 11:57:24 +0100
|
||||
Subject: [PATCH 1/7] Do not append to C/XX/FLAGS but just set them if not
|
||||
defined already
|
||||
|
||||
---
|
||||
c/Makefile | 2 +-
|
||||
cpp/Makefile | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/c/Makefile b/c/Makefile
|
||||
index fd0c367..b27449c 100644
|
||||
--- a/c/Makefile
|
||||
+++ b/c/Makefile
|
||||
@@ -29,7 +29,7 @@
|
||||
# - CFLAGS: Any extra user-specified compiler flags (can be blank).
|
||||
|
||||
# Recommended compiler flags:
|
||||
-CFLAGS += -std=c99 -O
|
||||
+CFLAGS ?= -std=c99 -O
|
||||
|
||||
# Extra flags for diagnostics:
|
||||
# CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
|
||||
diff --git a/cpp/Makefile b/cpp/Makefile
|
||||
index f83c512..666f976 100644
|
||||
--- a/cpp/Makefile
|
||||
+++ b/cpp/Makefile
|
||||
@@ -29,7 +29,7 @@
|
||||
# - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
|
||||
|
||||
# Recommended compiler flags:
|
||||
-CXXFLAGS += -std=c++11 -O
|
||||
+CXXFLAGS ?= -std=c++11 -O
|
||||
|
||||
# Extra flags for diagnostics:
|
||||
# CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
|
||||
|
||||
From 2e496a0f59d5c6782c1e3e2a3ca36d0272b384f3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
|
||||
Date: Tue, 3 Dec 2019 11:59:59 +0100
|
||||
Subject: [PATCH 2/7] Make use of -fPIC parameter when building'
|
||||
|
||||
---
|
||||
c/Makefile | 2 +-
|
||||
cpp/Makefile | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/c/Makefile b/c/Makefile
|
||||
index b27449c..bf79462 100644
|
||||
--- a/c/Makefile
|
||||
+++ b/c/Makefile
|
||||
@@ -77,7 +77,7 @@ $(LIBFILE): $(LIBOBJ)
|
||||
|
||||
# Object files
|
||||
%.o: %.c .deps/timestamp
|
||||
- $(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
|
||||
+ $(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
|
||||
|
||||
# Have a place to store header dependencies automatically generated by compiler
|
||||
.deps/timestamp:
|
||||
diff --git a/cpp/Makefile b/cpp/Makefile
|
||||
index 666f976..f37cf66 100644
|
||||
--- a/cpp/Makefile
|
||||
+++ b/cpp/Makefile
|
||||
@@ -73,7 +73,7 @@ $(LIBFILE): $(LIBOBJ)
|
||||
|
||||
# Object files
|
||||
%.o: %.cpp .deps/timestamp
|
||||
- $(CXX) $(CXXFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
|
||||
+ $(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
|
||||
|
||||
# Have a place to store header dependencies automatically generated by compiler
|
||||
.deps/timestamp:
|
||||
|
||||
From 29489faaa5a3b014c5c2d95ca34033df470de73c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
|
||||
Date: Tue, 3 Dec 2019 12:07:19 +0100
|
||||
Subject: [PATCH 3/7] Generate both shared and static libraries
|
||||
|
||||
---
|
||||
c/Makefile | 14 ++++++++++----
|
||||
cpp/Makefile | 14 ++++++++++----
|
||||
2 files changed, 20 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/c/Makefile b/c/Makefile
|
||||
index bf79462..38eda2d 100644
|
||||
--- a/c/Makefile
|
||||
+++ b/c/Makefile
|
||||
@@ -51,16 +51,19 @@ CFLAGS ?= -std=c99 -O
|
||||
# ---- Targets to build ----
|
||||
|
||||
LIB = qrcodegen
|
||||
-LIBFILE = lib$(LIB).a
|
||||
+ARFILE = lib$(LIB).a
|
||||
+LIBFILE = lib$(LIB).so
|
||||
+# Bump the soname number when the ABI changes and gets incompatible
|
||||
+SO_NAME = $(LIBFILE).1
|
||||
LIBOBJ = qrcodegen.o
|
||||
MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
|
||||
|
||||
# Build all binaries
|
||||
-all: $(LIBFILE) $(MAINS)
|
||||
+all: $(LIBFILE) $(ARFILE) $(MAINS)
|
||||
|
||||
# Delete build output
|
||||
clean:
|
||||
- rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
|
||||
+ rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
|
||||
rm -rf .deps
|
||||
|
||||
# Executable files
|
||||
@@ -72,9 +75,12 @@ qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c)
|
||||
$(CC) $(CFLAGS) -DQRCODEGEN_TEST -o $@ $^
|
||||
|
||||
# The library
|
||||
-$(LIBFILE): $(LIBOBJ)
|
||||
+$(ARFILE): $(LIBOBJ)
|
||||
$(AR) -crs $@ -- $^
|
||||
|
||||
+$(LIBFILE): $(LIBOBJ)
|
||||
+ $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
|
||||
+
|
||||
# Object files
|
||||
%.o: %.c .deps/timestamp
|
||||
$(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
|
||||
diff --git a/cpp/Makefile b/cpp/Makefile
|
||||
index f37cf66..606cdad 100644
|
||||
--- a/cpp/Makefile
|
||||
+++ b/cpp/Makefile
|
||||
@@ -51,16 +51,19 @@ CXXFLAGS ?= -std=c++11 -O
|
||||
# ---- Targets to build ----
|
||||
|
||||
LIB = qrcodegen
|
||||
-LIBFILE = lib$(LIB).a
|
||||
+ARFILE = lib$(LIB).a
|
||||
+LIBFILE = lib$(LIB).so
|
||||
+# Bump the soname number when the ABI changes and gets incompatible
|
||||
+SO_NAME = $(LIBFILE).1
|
||||
LIBOBJ = QrCode.o
|
||||
MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
|
||||
|
||||
# Build all binaries
|
||||
-all: $(LIBFILE) $(MAINS)
|
||||
+all: $(LIBFILE) $(ARFILE) $(MAINS)
|
||||
|
||||
# Delete build output
|
||||
clean:
|
||||
- rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
|
||||
+ rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
|
||||
rm -rf .deps
|
||||
|
||||
# Executable files
|
||||
@@ -68,9 +71,12 @@ clean:
|
||||
$(CXX) $(CXXFLAGS) -o $@ $< -L . -l $(LIB)
|
||||
|
||||
# The library
|
||||
-$(LIBFILE): $(LIBOBJ)
|
||||
+$(ARFILE): $(LIBOBJ)
|
||||
$(AR) -crs $@ -- $^
|
||||
|
||||
+$(LIBFILE): $(LIBOBJ)
|
||||
+ $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
|
||||
+
|
||||
# Object files
|
||||
%.o: %.cpp .deps/timestamp
|
||||
$(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
|
||||
|
||||
From 064f38d6a8dc0a457728a47ee4ca1e927e46d5ec Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
|
||||
Date: Tue, 3 Dec 2019 12:45:34 +0100
|
||||
Subject: [PATCH 4/7] Create install targets for C and CPP
|
||||
|
||||
---
|
||||
c/Makefile | 26 ++++++++++++++++++++++++++
|
||||
cpp/Makefile | 27 +++++++++++++++++++++++++++
|
||||
2 files changed, 53 insertions(+)
|
||||
|
||||
diff --git a/c/Makefile b/c/Makefile
|
||||
index 38eda2d..7521944 100644
|
||||
--- a/c/Makefile
|
||||
+++ b/c/Makefile
|
||||
@@ -34,6 +34,8 @@ CFLAGS ?= -std=c99 -O
|
||||
# Extra flags for diagnostics:
|
||||
# CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
|
||||
|
||||
+# Version information
|
||||
+VERSION = 1.5.0
|
||||
|
||||
# ---- Controlling make ----
|
||||
|
||||
@@ -55,9 +57,15 @@ ARFILE = lib$(LIB).a
|
||||
LIBFILE = lib$(LIB).so
|
||||
# Bump the soname number when the ABI changes and gets incompatible
|
||||
SO_NAME = $(LIBFILE).1
|
||||
+REAL_NAME = $(LIBFILE).$(VERSION)
|
||||
+HEADERS = qrcodegen.h
|
||||
LIBOBJ = qrcodegen.o
|
||||
MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
|
||||
|
||||
+# define paths to install
|
||||
+INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
|
||||
+LIBDIR ?= $(DESTDIR)/usr/lib
|
||||
+
|
||||
# Build all binaries
|
||||
all: $(LIBFILE) $(ARFILE) $(MAINS)
|
||||
|
||||
@@ -66,6 +74,24 @@ clean:
|
||||
rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
|
||||
rm -rf .deps
|
||||
|
||||
+install-shared: $(LIBFILE)
|
||||
+ install -d $(LIBDIR) || true
|
||||
+ install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
|
||||
+ rm -f $(LIBDIR)/$(SO_NAME)
|
||||
+ ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
|
||||
+ rm -f $(LIBDIR)/$(LIBFILE)
|
||||
+ ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE)
|
||||
+
|
||||
+install-static: $(ARFILE)
|
||||
+ install -d $(LIBDIR) || true
|
||||
+ install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
|
||||
+
|
||||
+install-header: $(HEADERS)
|
||||
+ install -d $(INCLUDEDIR) || true
|
||||
+ install -m 0644 $(HEADERS) $(INCLUDEDIR)/
|
||||
+
|
||||
+install: install-shared install-static install-header
|
||||
+
|
||||
# Executable files
|
||||
%: %.o $(LIBFILE)
|
||||
$(CC) $(CFLAGS) -o $@ $< -L . -l $(LIB)
|
||||
diff --git a/cpp/Makefile b/cpp/Makefile
|
||||
index 606cdad..3271bd8 100644
|
||||
--- a/cpp/Makefile
|
||||
+++ b/cpp/Makefile
|
||||
@@ -34,6 +34,8 @@ CXXFLAGS ?= -std=c++11 -O
|
||||
# Extra flags for diagnostics:
|
||||
# CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
|
||||
|
||||
+# Version information
|
||||
+VERSION = 1.5.0
|
||||
|
||||
# ---- Controlling make ----
|
||||
|
||||
@@ -55,9 +57,16 @@ ARFILE = lib$(LIB).a
|
||||
LIBFILE = lib$(LIB).so
|
||||
# Bump the soname number when the ABI changes and gets incompatible
|
||||
SO_NAME = $(LIBFILE).1
|
||||
+REAL_NAME = $(LIBFILE).$(VERSION)
|
||||
+HEADERS = QrCode.hpp
|
||||
LIBOBJ = QrCode.o
|
||||
MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
|
||||
|
||||
+# define paths to install
|
||||
+INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
|
||||
+LIBDIR ?= $(DESTDIR)/usr/lib
|
||||
+
|
||||
+
|
||||
# Build all binaries
|
||||
all: $(LIBFILE) $(ARFILE) $(MAINS)
|
||||
|
||||
@@ -66,6 +75,24 @@ clean:
|
||||
rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
|
||||
rm -rf .deps
|
||||
|
||||
+install-shared: $(LIBFILE)
|
||||
+ install -d $(LIBDIR) || true
|
||||
+ install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
|
||||
+ rm -f $(LIBDIR)/$(SO_NAME)
|
||||
+ ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
|
||||
+ rm -f $(LIBDIR)/$(LIBFILE)
|
||||
+ ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE)
|
||||
+
|
||||
+install-static: $(ARFILE)
|
||||
+ install -d $(LIBDIR) || true
|
||||
+ install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
|
||||
+
|
||||
+install-header: $(HEADERS)
|
||||
+ install -d $(INCLUDEDIR) || true
|
||||
+ install -m 0644 $(HEADERS) $(INCLUDEDIR)/
|
||||
+
|
||||
+install: install-shared install-static install-header
|
||||
+
|
||||
# Executable files
|
||||
%: %.o $(LIBFILE)
|
||||
$(CXX) $(CXXFLAGS) -o $@ $< -L . -l $(LIB)
|
||||
|
||||
From a635ff4654f94ab26b458c46a8841543e5bc8c67 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
|
||||
Date: Tue, 3 Dec 2019 12:50:39 +0100
|
||||
Subject: [PATCH 5/7] Rename cpp library to qrcodegencpp to avoid conflict
|
||||
|
||||
---
|
||||
cpp/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cpp/Makefile b/cpp/Makefile
|
||||
index 3271bd8..42fa4ff 100644
|
||||
--- a/cpp/Makefile
|
||||
+++ b/cpp/Makefile
|
||||
@@ -52,7 +52,7 @@ VERSION = 1.5.0
|
||||
|
||||
# ---- Targets to build ----
|
||||
|
||||
-LIB = qrcodegen
|
||||
+LIB = qrcodegencpp
|
||||
ARFILE = lib$(LIB).a
|
||||
LIBFILE = lib$(LIB).so
|
||||
# Bump the soname number when the ABI changes and gets incompatible
|
||||
|
||||
From c073e7dfad6454dfd725a69c347f8272d29ea41c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
|
||||
Date: Tue, 7 Jan 2020 09:18:59 +0100
|
||||
Subject: [PATCH 6/7] Add PREFIX variable and few minor fixes from code review
|
||||
|
||||
---
|
||||
c/Makefile | 9 +++++----
|
||||
cpp/Makefile | 9 +++++----
|
||||
2 files changed, 10 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/c/Makefile b/c/Makefile
|
||||
index 7521944..874933e 100644
|
||||
--- a/c/Makefile
|
||||
+++ b/c/Makefile
|
||||
@@ -29,7 +29,7 @@
|
||||
# - CFLAGS: Any extra user-specified compiler flags (can be blank).
|
||||
|
||||
# Recommended compiler flags:
|
||||
-CFLAGS ?= -std=c99 -O
|
||||
+CFLAGS += -std=c99
|
||||
|
||||
# Extra flags for diagnostics:
|
||||
# CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
|
||||
@@ -63,8 +63,9 @@ LIBOBJ = qrcodegen.o
|
||||
MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
|
||||
|
||||
# define paths to install
|
||||
-INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
|
||||
-LIBDIR ?= $(DESTDIR)/usr/lib
|
||||
+PREFIX ?= /usr/local
|
||||
+INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include/qrcodegen
|
||||
+LIBDIR ?= $(DESTDIR)$(PREFIX)/lib
|
||||
|
||||
# Build all binaries
|
||||
all: $(LIBFILE) $(ARFILE) $(MAINS)
|
||||
@@ -105,7 +106,7 @@ $(ARFILE): $(LIBOBJ)
|
||||
$(AR) -crs $@ -- $^
|
||||
|
||||
$(LIBFILE): $(LIBOBJ)
|
||||
- $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
|
||||
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
|
||||
|
||||
# Object files
|
||||
%.o: %.c .deps/timestamp
|
||||
diff --git a/cpp/Makefile b/cpp/Makefile
|
||||
index 42fa4ff..f8d9b7f 100644
|
||||
--- a/cpp/Makefile
|
||||
+++ b/cpp/Makefile
|
||||
@@ -29,7 +29,7 @@
|
||||
# - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
|
||||
|
||||
# Recommended compiler flags:
|
||||
-CXXFLAGS ?= -std=c++11 -O
|
||||
+CXXFLAGS += -std=c++11
|
||||
|
||||
# Extra flags for diagnostics:
|
||||
# CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
|
||||
@@ -63,8 +63,9 @@ LIBOBJ = QrCode.o
|
||||
MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
|
||||
|
||||
# define paths to install
|
||||
-INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
|
||||
-LIBDIR ?= $(DESTDIR)/usr/lib
|
||||
+PREFIX ?= /usr/local
|
||||
+INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include/qrcodegen
|
||||
+LIBDIR ?= $(DESTDIR)$(PREFIX)/lib
|
||||
|
||||
|
||||
# Build all binaries
|
||||
@@ -102,7 +103,7 @@ $(ARFILE): $(LIBOBJ)
|
||||
$(AR) -crs $@ -- $^
|
||||
|
||||
$(LIBFILE): $(LIBOBJ)
|
||||
- $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
|
||||
+ $(CXX) $(CXXFLAGS) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
|
||||
|
||||
# Object files
|
||||
%.o: %.cpp .deps/timestamp
|
||||
|
||||
From b43c1de5cc874535a7f549cef437f6849528e455 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
|
||||
Date: Tue, 7 Jan 2020 13:12:32 +0100
|
||||
Subject: [PATCH 7/7] Install static and shared library as an executable
|
||||
|
||||
---
|
||||
c/Makefile | 4 ++--
|
||||
cpp/Makefile | 4 ++--
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/c/Makefile b/c/Makefile
|
||||
index 874933e..631cc71 100644
|
||||
--- a/c/Makefile
|
||||
+++ b/c/Makefile
|
||||
@@ -77,7 +77,7 @@ clean:
|
||||
|
||||
install-shared: $(LIBFILE)
|
||||
install -d $(LIBDIR) || true
|
||||
- install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
|
||||
+ install -m 0755 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
|
||||
rm -f $(LIBDIR)/$(SO_NAME)
|
||||
ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
|
||||
rm -f $(LIBDIR)/$(LIBFILE)
|
||||
@@ -85,7 +85,7 @@ install-shared: $(LIBFILE)
|
||||
|
||||
install-static: $(ARFILE)
|
||||
install -d $(LIBDIR) || true
|
||||
- install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
|
||||
+ install -m 0755 $(ARFILE) $(LIBDIR)/$(ARFILE)
|
||||
|
||||
install-header: $(HEADERS)
|
||||
install -d $(INCLUDEDIR) || true
|
||||
diff --git a/cpp/Makefile b/cpp/Makefile
|
||||
index f8d9b7f..bbd861e 100644
|
||||
--- a/cpp/Makefile
|
||||
+++ b/cpp/Makefile
|
||||
@@ -78,7 +78,7 @@ clean:
|
||||
|
||||
install-shared: $(LIBFILE)
|
||||
install -d $(LIBDIR) || true
|
||||
- install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
|
||||
+ install -m 0755 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
|
||||
rm -f $(LIBDIR)/$(SO_NAME)
|
||||
ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
|
||||
rm -f $(LIBDIR)/$(LIBFILE)
|
||||
@@ -86,7 +86,7 @@ install-shared: $(LIBFILE)
|
||||
|
||||
install-static: $(ARFILE)
|
||||
install -d $(LIBDIR) || true
|
||||
- install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
|
||||
+ install -m 0755 $(ARFILE) $(LIBDIR)/$(ARFILE)
|
||||
|
||||
install-header: $(HEADERS)
|
||||
install -d $(INCLUDEDIR) || true
|
Loading…
Reference in a new issue