[PATCH] Make release builds reproducible, mk. 1
authorTheAssassin <theassassin@assassinate-you.net>
Sun, 10 Feb 2019 03:00:11 +0000 (04:00 +0100)
committerScarlett Moore <sgmoore@kde.org>
Sun, 10 Feb 2019 13:08:27 +0000 (13:08 +0000)
Gbp-Pq: Name 0001-Make-release-builds-reproducible-mk.-1.patch

CMakeLists.txt

index b9de6cbf468b7c67a2e6d12f2aa893b75002c9dd..8bf07fb09566fd6958b69430c88f35cebdc5723e 100644 (file)
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.2)
+cmake_minimum_required(VERSION 3.4)
 
 project(libappimage)
 
@@ -7,6 +7,19 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
 
+# help produce reproducible builds
+if(CMAKE_BUILD_TYPE STREQUAL Release)
+    message(STATUS "Release build detected, enabling reproducible builds mode")
+    get_filename_component(abs_source_path ${PROJECT_SOURCE_DIR} ABSOLUTE)
+    file(RELATIVE_PATH rel_source_path ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR})
+
+    set(map_fix ${abs_source_path}=${rel_source_path})
+
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdebug-prefix-map=${map_fix} -fmacro-prefix-map=${map_fix}")
+    set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -fdebug-prefix-map=${map_fix} -fmacro-prefix-map=${map_fix}")
+    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_C_FLAGS} -fdebug-prefix-map=${map_fix} -fmacro-prefix-map=${map_fix}")
+endif()
+
 # versioning
 set(V_MAJOR 0)
 set(V_MINOR 1)