]> granicus.if.org Git - fortune-mod/commitdiff
Extract a common module/library/header.
authorShlomi Fish <shlomif@shlomifish.org>
Tue, 24 Nov 2020 10:38:51 +0000 (12:38 +0200)
committerShlomi Fish <shlomif@shlomifish.org>
Tue, 24 Nov 2020 10:38:51 +0000 (12:38 +0200)
rinutils_bootstrap.cmake.

This is Refactoring / code cleanup.

See:

* https://refactoring.com/catalog/extractMethod.html

* https://en.wikipedia.org/wiki/Code_refactoring

* https://www.refactoring.com/

* https://www.joelonsoftware.com/2002/01/23/rub-a-dub-dub/

Some small optimisations may have slipped in as well.

fortune-mod/CMakeLists.txt
fortune-mod/cmake/rinutils_bootstrap.cmake [new file with mode: 0644]

index 28fd43f8cb5230dfd690f40b16469fba1f02aa76..4ec4e64be9ffd16a786f5b887e61d694aad8a313 100644 (file)
@@ -102,34 +102,10 @@ SHLOMIF_ADD_COMMON_C_FLAGS()
 
 SHLOMIF_FINALIZE_FLAGS()
 
+INCLUDE ("${CMAKE_SOURCE_DIR}/cmake/rinutils_bootstrap.cmake")
 
-# Clone the rinutils repository with the appropriate tag.
-SET (rinutils_dir "rinutils")
-SET (rinutils_dir_absolute "${CMAKE_CURRENT_SOURCE_DIR}/${rinutils_dir}")
-SET (rinutils_inc_dir "${rinutils_dir_absolute}/rinutils/include")
-IF (NOT EXISTS "${rinutils_inc_dir}")
-    EXECUTE_PROCESS(
-        COMMAND "git" "clone" "-b" "0.6.0" "https://github.com/shlomif/rinutils.git" "${rinutils_dir}"
-        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-    )
-ELSE ()
-    IF (NOT EXISTS "${rinutils_inc_dir}")
-        EXECUTE_PROCESS(
-            COMMAND "git" "submodule" "update" "--init"
-            WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-        )
-    ENDIF ()
-ENDIF ()
+RINUTILS_SET_UP_FLAGS()
 
-find_package(Rinutils QUIET)
-IF ("${Rinutils_FOUND}")
-    INCLUDE_DIRECTORIES(AFTER ${RINUTILS_INCLUDE_DIR} ${RINUTILS_INCLUDE_DIRS})
-ELSE ()
-    IF (NOT EXISTS "${rinutils_inc_dir}")
-        MESSAGE(FATAL_ERROR "Could not find rinutils anywhere - it should have been bundled in the releases' source tarball.\nYou can try installing it from a source release or from its repository: https://github.com/shlomif/rinutils\n\nAlso see: https://github.com/shlomif/fortune-mod/issues/44")
-    ENDIF ()
-    INCLUDE_DIRECTORIES(AFTER "${rinutils_inc_dir}")
-ENDIF ()
 IF ("$ENV{FCS_GCC}")
     ADD_DEFINITIONS("-W -Wabi=11 -Waddress -Waggressive-loop-optimizations -Wall -Wattributes -Wbad-function-cast -Wbool-compare -Wbool-operation -Wbuiltin-declaration-mismatch -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment -Wcomments -Wcoverage-mismatch -Wcpp -Wdangling-else -Wdate-time -Wdeprecated -Wdeprecated-declarations -Wdesignated-init -Wdisabled-optimization -Wdiscarded-array-qualifiers -Wdiscarded-qualifiers -Wdiv-by-zero -Wdouble-promotion -Wduplicated-branches -Wduplicated-cond -Wduplicate-decl-specifier -Wempty-body -Wendif-labels -Wenum-compare -Wexpansion-to-defined -Wextra -Wformat-contains-nul -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-signedness -Wformat-y2k -Wformat-zero-length -Wframe-address -Wfree-nonheap-object -Whsa -Wignored-attributes -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wincompatible-pointer-types -Winit-self -Winline -Wint-conversion -Wint-in-bool-context -Wint-to-pointer-cast -Winvalid-memory-model -Winvalid-pch -Wjump-misses-init -Wlogical-not-parentheses -Wlogical-op -Wmain -Wmaybe-uninitialized -Wmemset-elt-size -Wmemset-transposed-args -Wmisleading-indentation -Wmissing-braces -Wmissing-declarations -Wmissing-field-initializers -Wmissing-include-dirs -Wmissing-parameter-type -Wmissing-prototypes -Wmultichar -Wnarrowing -Wnested-externs -Wnonnull -Wnonnull-compare -Wnull-dereference -Wodr -Wold-style-declaration -Wold-style-definition -Wopenmp-simd -Woverflow -Woverlength-strings -Woverride-init -Wpacked -Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-compare -Wpointer-sign -Wpointer-to-int-cast -Wpragmas -Wpsabi -Wrestrict -Wreturn-local-addr -Wreturn-type -Wscalar-storage-order -Wsequence-point -Wshadow -Wshift-count-negative -Wshift-count-overflow -Wshift-negative-value -Wsizeof-array-argument -Wsizeof-pointer-memaccess -Wstack-protector -Wstrict-aliasing -Wstrict-prototypes  -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wswitch -Wswitch-bool -Wswitch-default -Wswitch-unreachable -Wsync-nand -Wtautological-compare -Wtrampolines -Wtrigraphs -Wtype-limits -Wuninitialized -Wunknown-pragmas -Wunsafe-loop-optimizations -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-macros -Wunused-parameter -Wunused-result -Wunused-value -Wunused-variable -Wvarargs -Wvariadic-macros -Wvector-operation-performance -Wvla -Wvolatile-register-var -Wwrite-strings -Walloc-size-larger-than=9223372036854775807 -Warray-bounds=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wnormalized=nfc -Wshift-overflow=2  -Wunused-const-variable=2 -Wstrict-overflow=1  -Wno-switch-default -Wno-vla -Wno-inline  -Wno-jump-misses-init -Wno-unsafe-loop-optimizations")
     # -Wimplicit-fallthrough=5
diff --git a/fortune-mod/cmake/rinutils_bootstrap.cmake b/fortune-mod/cmake/rinutils_bootstrap.cmake
new file mode 100644 (file)
index 0000000..e9a93fb
--- /dev/null
@@ -0,0 +1,29 @@
+MACRO(RINUTILS_SET_UP_FLAGS)
+    # Clone the rinutils repository with the appropriate tag.
+    SET (rinutils_dir "rinutils")
+    SET (rinutils_dir_absolute "${CMAKE_CURRENT_SOURCE_DIR}/${rinutils_dir}")
+    SET (rinutils_inc_dir "${rinutils_dir_absolute}/rinutils/include")
+    IF (NOT EXISTS "${rinutils_inc_dir}")
+        EXECUTE_PROCESS(
+            COMMAND "git" "clone" "-b" "0.6.0" "https://github.com/shlomif/rinutils.git" "${rinutils_dir}"
+            WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+        )
+    ELSE ()
+        IF (NOT EXISTS "${rinutils_inc_dir}")
+            EXECUTE_PROCESS(
+                COMMAND "git" "submodule" "update" "--init"
+                WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+            )
+        ENDIF ()
+    ENDIF ()
+
+    find_package(Rinutils QUIET)
+    IF ("${Rinutils_FOUND}")
+        INCLUDE_DIRECTORIES(AFTER ${RINUTILS_INCLUDE_DIR} ${RINUTILS_INCLUDE_DIRS})
+    ELSE ()
+        IF (NOT EXISTS "${rinutils_inc_dir}")
+            MESSAGE(FATAL_ERROR "Could not find rinutils anywhere - it should have been bundled in the releases' source tarball.\nYou can try installing it from a source release or from its repository: https://github.com/shlomif/rinutils\n\nAlso see: https://github.com/shlomif/fortune-mod/issues/44")
+        ENDIF ()
+        INCLUDE_DIRECTORIES(AFTER "${rinutils_inc_dir}")
+    ENDIF ()
+ENDMACRO ()