1 cmake_minimum_required(VERSION 3.2)
3 SET (private_mod_path "${CMAKE_SOURCE_DIR}/cmake")
4 LIST (APPEND CMAKE_MODULE_PATH "${private_mod_path}")
5 INCLUDE(Shlomif_Common)
7 SHLOMIF_COMMON_SETUP("${private_mod_path}")
9 CMAKE_POLICY(SET CMP0054 NEW)
11 SET (PKGDATADIR_SUBDIR "fortune-mod")
12 SET (RELATIVE_PKGDATADIR "${RELATIVE_DATADIR}/${PKGDATADIR_SUBDIR}")
13 SET (PKGDATADIR "${DATADIR}/${PKGDATADIR_SUBDIR}")
15 # Introduces VERSION , CPACK_PACKAGE_VERSION_MAJOR,
16 # CPACK_PACKAGE_VERSION_MAJOR, and CPACK_PACKAGE_VERSION_PATCH
17 READ_VERSION_FROM_VER_TXT()
19 # This is the equivalent to perform a "make dist"/"make distdir" etc.
20 SET(CPACK_PACKAGE_NAME "fortune-mod")
21 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "fortune-mod")
22 SET(CPACK_PACKAGE_VENDOR "Shlomi Fish")
23 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
24 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.txt")
27 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_DESCRIPTION_SUMMARY} ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
29 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
31 SET (base_with_ver "fortune-mod-[0-9]+\\\\.[0-9]+\\\\.[0-9]+")
33 SET(CPACK_SOURCE_IGNORE_FILES
41 IF(WIN32 AND NOT UNIX)
42 # There is a bug in NSI that does not handle full unix paths properly. Make
43 # sure there is at least one set of four (4) backlasshes.
44 SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}\\\\dondorf-king.bmp")
45 SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\fortune.exe")
46 SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\github.com\\\\shlomif\\\\fortune-mod")
47 SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\github.com\\\\shlomif\\\\fortune-mod")
48 SET(CPACK_NSIS_DISPLAY_NAME "fortune-mod")
49 SET(CPACK_NSIS_CONTACT "shlomif@shlomifish.org")
50 SET(CPACK_NSIS_MODIFY_PATH ON)
52 SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\fc-solve.ico")
53 SET(CPACK_NSIS_MUI_UNIICON ${CPACK_NSIS_MUI_ICON})
54 SET(CPACK_PACKAGE_ICON ${CPACK_NSIS_MUI_ICON})
55 SET(CPACK_NSIS_MODIFY_PATH "ON")
57 SET(CPACK_STRIP_FILES "fortune")
58 SET(CPACK_SOURCE_STRIP_FILES "")
61 SET(CPACK_PACKAGE_EXECUTABLES
62 "fortune" "The fortune-mod program"
65 ### This is to set the RPATH correctly, so when installed under a prefix
66 ### the executables will find the libraries.
70 ### http://www.cmake.org/Wiki/CMake_RPATH_handling
72 ### (Taken from that wiki page)
74 # use, i.e. don't skip the full RPATH for the build tree
75 SET(CMAKE_SKIP_BUILD_RPATH FALSE)
77 # when building, don't use the install RPATH already
78 # (but later on when installing)
79 SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
81 # the RPATH to be used when installing
82 SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
84 # add the automatically determined parts of the RPATH
85 # which point to directories outside the build tree to the install RPATH
86 SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
88 SET (WITH_TEST_SUITE CACHE BOOL "")
89 SET (NO_OFFENSIVE CACHE BOOL "Exclude the offensive option.")
90 SET (LOCALDIR "${CMAKE_INSTALL_PREFIX}/local/share/games/fortunes" CACHE STRING "LOCALDIR fortunes dir")
91 SET (LOCALODIR "${LOCALDIR}/off" CACHE STRING "offensive fortunes localdir")
92 SET (COOKIEDIR "${CMAKE_INSTALL_PREFIX}/share/games/fortunes" CACHE STRING "cookie dir not under /usr/local")
93 SET (OCOOKIEDIR "${COOKIEDIR}/off" CACHE STRING "offensive cookie dir not under /usr/local")
95 SHLOMIF_ADD_COMMON_C_FLAGS()
97 FIND_PATH( RECODE_H "recode.h")
99 MACRO(my_exe exe c_file dir)
100 ADD_EXECUTABLE("${exe}" "${c_file}")
101 INSTALL(TARGETS "${exe}" RUNTIME DESTINATION "${dir}")
128 SET (_my_man_page "${CMAKE_CURRENT_SOURCE_DIR}/fortune/fortune.6")
129 SET (_my_man_gen "${CMAKE_CURRENT_SOURCE_DIR}/fortune/gen-fortune-man-page.pl")
131 LIST(APPEND _my_args "--cookiedir" "${COOKIEDIR}" "--ocookiedir" "${OCOOKIEDIR}" "--output" "${_my_man_page}")
132 IF ("${NO_OFFENSIVE}")
133 LIST(APPEND _my_args "--without-offensive")
137 OUTPUT "${_my_man_page}"
138 COMMAND "${PERL_EXECUTABLE}"
139 ARGS "${_my_man_gen}" ${_my_args}
140 DEPENDS "${_my_man_gen}"
145 ALL DEPENDS "${_my_man_page}"
147 INSTALL_RENAME_MAN("strfile.man" "1" "strfile" "util")
148 INSTALL_RENAME_MAN("fortune.6" "6" "fortune" "fortune")
150 TARGET_LINK_LIBRARIES("fortune" "recode")
151 INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/util")
153 ADD_DEFINITIONS("-DLOCOFFDIR=\"${LOCALODIR}\"")
154 ADD_DEFINITIONS("-DLOCFORTDIR=\"${LOCALDIR}\"")
155 ADD_DEFINITIONS("-DOFFDIR=\"${OCOOKIEDIR}\"")
156 ADD_DEFINITIONS("-DFORTDIR=\"${COOKIEDIR}\"")
158 IF ("${NO_OFFENSIVE}")
159 ADD_DEFINITIONS("-DNO_OFFENSIVE=1")
162 INCLUDE(CheckIncludeFile)
163 CHECK_INCLUDE_FILE("regex.h" HAVE_REGEX_H)
165 IF ("${HAVE_REGEX_H}")
166 ADD_DEFINITIONS("-DHAVE_REGEX_H")
167 ADD_DEFINITIONS("-DBSD_REGEX")
170 ADD_DEFINITIONS("-DHAVE_STDBOOL")
214 ADD_SUBDIRECTORY("datfiles")
216 string (REPLACE ";" " " COOKIES_STR "${COOKIES}")
219 "perl" "${CMAKE_SOURCE_DIR}/run-tests.pl" "--src-dir" "${CMAKE_SOURCE_DIR}" "--cookies" "${COOKIES_STR}"