From 30be1a4460cf37f4ba3f55a213059897346c22f7 Mon Sep 17 00:00:00 2001
From: Johan Holmberg <holmberg556@gmail.com>
Date: Thu, 23 Mar 2017 15:39:15 +0100
Subject: [PATCH] add "simple" packaging

to get zip/tgz files with just "bin" and "lib" directories
---
 CMakeLists.txt | 84 ++++++++++++++++++++++++++++++++++----------------
 Rakefile       |  8 ++++-
 2 files changed, 65 insertions(+), 27 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9b4ae58..ad9a40f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,9 @@
 cmake_minimum_required(VERSION 3.0)
 project(cmdtest)
 
+set( CMDTEST_DATE "" CACHE STRING "date string" )
+set( CMDTEST_SIMPLE NO CACHE BOOL "simple packaging" )
+
 execute_process(
   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
   COMMAND ruby bin/cmdtest.rb --shortversion
@@ -8,16 +11,15 @@ execute_process(
   OUTPUT_STRIP_TRAILING_WHITESPACE
   )
 
-execute_process(
-  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-  COMMAND date +%Y%m%d.%H%M
-  OUTPUT_VARIABLE CMDTEST_DATE
-  OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-
-set(CPACK_GENERATOR "STGZ;TGZ;TZ;ZIP")
-if( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" )
-  set(CPACK_GENERATOR "DEB;${CPACK_GENERATOR}")
+if( CMDTEST_DATE )
+  # from command line
+else()
+  execute_process(
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+    COMMAND date +%Y%m%d.%H%M
+    OUTPUT_VARIABLE CMDTEST_DATE
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
 endif()
 
 set(CPACK_PACKAGE_VERSION "${CMDTEST_VERSION}.${CMDTEST_DATE}")
@@ -29,6 +31,16 @@ set(CPACK_PACKAGE_DESCRIPTION "Cmdtest, xUnit style testing of commands ...")
 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "all")
 set(CPACK_DEBIAN_PACKAGE_DEPENDS "ruby | ruby-interpreter")
 
+if( CMDTEST_SIMPLE )
+  set(CPACK_GENERATOR "TGZ;ZIP")
+  set(CPACK_PACKAGE_FILE_NAME "cmdtest-${CPACK_PACKAGE_VERSION}-SIMPLE")
+else()
+  set(CPACK_GENERATOR "STGZ;TGZ;TZ;ZIP")
+  if( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" )
+    set(CPACK_GENERATOR "DEB;${CPACK_GENERATOR}")
+  endif()
+endif()
+
 INCLUDE(CPack)
 
 execute_process(
@@ -56,8 +68,7 @@ execute_process(
   )
 
 
-install(
-  FILES
+set( LIB_FILES
   lib/cmdtest/argumentparser.rb
   lib/cmdtest/baselogger.rb
   lib/cmdtest/cmdeffects.rb
@@ -73,20 +84,41 @@ install(
   lib/cmdtest/testcase.rb
   lib/cmdtest/util.rb
   lib/cmdtest/workdir.rb
-  DESTINATION lib/ruby/vendor_ruby/cmdtest
   )
 
-install(
-  FILES
-  doc/cmdtest.html
-  COPYING.txt
-  README.html
-  DESTINATION share/doc/cmdtest
-  )
+if( CMDTEST_SIMPLE )
+  install(
+    FILES ${LIB_FILES}
+    DESTINATION lib/cmdtest
+    )
+
+  install(
+    PROGRAMS
+    bin/cmdtest.rb.generated
+    DESTINATION bin
+    RENAME cmdtest.rb
+    )
+
+else()
+  install(
+    FILES ${LIB_FILES}
+    DESTINATION lib/ruby/vendor_ruby/cmdtest
+    )
+
+  install(
+    FILES
+    doc/cmdtest.html
+    COPYING.txt
+    README.html
+    DESTINATION share/doc/cmdtest
+    )
+
+  install(
+    PROGRAMS
+    bin/cmdtest.rb.generated
+    DESTINATION bin
+    RENAME cmdtest
+    )
+
+endif()
 
-install(
-  PROGRAMS
-  bin/cmdtest.rb.generated
-  DESTINATION bin
-  RENAME cmdtest
-  )
diff --git a/Rakefile b/Rakefile
index 3e75201..cac124a 100644
--- a/Rakefile
+++ b/Rakefile
@@ -19,7 +19,13 @@ end
 
 desc "generate DEB package"
 task "generate-debian-package" do
+  date = ENV["CMDTEST_DATE"] || Time.now.strftime("%Y%m%d.%H%M")
+
   sh "rm -rf build"
   sh "mkdir build"
-  sh "cd build && cmake .. && make package"
+  sh "cd build && cmake -DCMDTEST_DATE=#{date} .. && make package"
+
+  sh "rm -rf build_simple"
+  sh "mkdir build_simple"
+  sh "cd build_simple && cmake -DCMDTEST_DATE=#{date} -DCMDTEST_SIMPLE=YES .. && make package"
 end