build_options.cmake revision 0bbfda8a
10bbfda8aSnia#
20bbfda8aSnia# Our build-time options
30bbfda8aSnia#
40bbfda8aSnia
50bbfda8aSnia
60bbfda8aSnia#
70bbfda8aSnia# Define options
80bbfda8aSnia# These can be set at the command line; e.g., "cmake -DUSE_JPEG=OFF"
90bbfda8aSnia#
100bbfda8aSniaoption(USE_XPM    "Enable XPM support"                 ON )
110bbfda8aSniaoption(USE_JPEG   "Enable libjpeg support"             ON )
120bbfda8aSniaoption(USE_M4     "Enable m4 support"                  ON )
130bbfda8aSniaoption(USE_RPLAY  "Enable librplay sound support"      OFF)
140bbfda8aSniaoption(USE_SREGEX "Use regex from libc"                ON )
150bbfda8aSniaoption(USE_EWMH   "Support some Extended Window Manager Hints"  ON )
160bbfda8aSnia
170bbfda8aSnia
180bbfda8aSnia
190bbfda8aSnia#
200bbfda8aSnia# Now check what's set, make sure we can find stuff, and configure bits
210bbfda8aSnia# up.
220bbfda8aSnia#
230bbfda8aSnia
240bbfda8aSnia# Hard to imagine xpm not being around or somebody not wanting it, but...
250bbfda8aSniaif(USE_XPM)
260bbfda8aSnia	if(NOT X11_Xpm_FOUND)
270bbfda8aSnia		message(FATAL_ERROR "Couldn't find XPM libs")
280bbfda8aSnia	endif(NOT X11_Xpm_FOUND)
290bbfda8aSnia
300bbfda8aSnia	list(APPEND CTWMLIBS ${X11_Xpm_LIB})
310bbfda8aSnia	list(APPEND CTWMSRC image_xpm.c)
320bbfda8aSnia	message(STATUS "Enabling XPM support: ${X11_Xpm_LIB}")
330bbfda8aSnia
340bbfda8aSnia	# DATADIR should already be defined; guard against me being stupid
350bbfda8aSnia	# when I change something
360bbfda8aSnia	if(NOT DATADIR)
370bbfda8aSnia		message(FATAL_ERROR "Internal error: DATADIR not defined!")
380bbfda8aSnia	endif(NOT DATADIR)
390bbfda8aSniaendif(USE_XPM)
400bbfda8aSnia
410bbfda8aSnia
420bbfda8aSnia# libjpeg is pretty common
430bbfda8aSniaif(USE_JPEG)
440bbfda8aSnia	find_package(JPEG)
450bbfda8aSnia	if(NOT JPEG_FOUND)
460bbfda8aSnia		message(FATAL_ERROR "Couldn't find libjpeg")
470bbfda8aSnia	endif()
480bbfda8aSnia
490bbfda8aSnia	include_directories(${JPEG_INCLUDE_DIR})
500bbfda8aSnia	list(APPEND CTWMLIBS ${JPEG_LIBRARIES})
510bbfda8aSnia	list(APPEND CTWMSRC image_jpeg.c)
520bbfda8aSnia	message(STATUS "Enabling libjpeg support.")
530bbfda8aSniaendif(USE_JPEG)
540bbfda8aSnia
550bbfda8aSnia
560bbfda8aSnia# m4 is on by default too
570bbfda8aSniaif(USE_M4)
580bbfda8aSnia	if(NOT M4_CMD)
590bbfda8aSnia		find_program(M4_CMD m4 gm4)
600bbfda8aSnia	endif(NOT M4_CMD)
610bbfda8aSnia	if(NOT M4_CMD)
620bbfda8aSnia		message(FATAL_ERROR "Can't find m4 program: try setting M4_CMD.")
630bbfda8aSnia	endif(NOT M4_CMD)
640bbfda8aSnia	list(APPEND CTWMSRC parse_m4.c)
650bbfda8aSnia	message(STATUS "Enabling m4 support (${M4_CMD}).")
660bbfda8aSniaendif(USE_M4)
670bbfda8aSnia
680bbfda8aSnia
690bbfda8aSnia# rplay off by default
700bbfda8aSniaif(USE_SOUND)
710bbfda8aSnia	message(WARNING "USE_SOUND is deprecated; use USE_RPLAY instead.")
720bbfda8aSnia	set(USE_RPLAY YES)
730bbfda8aSniaendif(USE_SOUND)
740bbfda8aSniaif(USE_RPLAY)
750bbfda8aSnia	find_library(LIBRPLAY NAMES rplay PATHS ${LIBSEARCH})
760bbfda8aSnia	if(NOT LIBRPLAY)
770bbfda8aSnia		message(FATAL_ERROR "Can't find librplay lib.")
780bbfda8aSnia	endif(NOT LIBRPLAY)
790bbfda8aSnia	find_path(LIBRPLAY_INCLUDE_DIR NAME rplay.h PATHS ${INCSEARCH})
800bbfda8aSnia	if(NOT LIBRPLAY_INCLUDE_DIR)
810bbfda8aSnia		message(FATAL_ERROR "Can't find rplay.h.")
820bbfda8aSnia	endif(NOT LIBRPLAY_INCLUDE_DIR)
830bbfda8aSnia
840bbfda8aSnia	list(APPEND CTWMSRC sound.c)
850bbfda8aSnia	list(APPEND CTWMLIBS ${LIBRPLAY})
860bbfda8aSnia	include_directories(${LIBRPLAY_INCLUDE_DIR})
870bbfda8aSnia	message(STATUS "Enabling librplay sound support.")
880bbfda8aSniaendif(USE_RPLAY)
890bbfda8aSnia
900bbfda8aSnia
910bbfda8aSnia# Check if the user wants EWMH support built in.
920bbfda8aSniaif(USE_EWMH)
930bbfda8aSnia    # Hand-build ewmh_atoms.[ch]
940bbfda8aSnia	set(ewmh_atoms ewmh_atoms.h ewmh_atoms.c)
950bbfda8aSnia	add_custom_command(OUTPUT ${ewmh_atoms}
960bbfda8aSnia		DEPENDS ewmh_atoms.in ${TOOLS}/mk_atoms.sh
970bbfda8aSnia		COMMAND ${TOOLS}/mk_atoms.sh ${CMAKE_CURRENT_SOURCE_DIR}/ewmh_atoms.in ewmh_atoms EWMH
980bbfda8aSnia    )
990bbfda8aSnia
1000bbfda8aSnia	list(APPEND CTWMSRC ewmh.c ewmh_atoms.c)
1010bbfda8aSnia	message(STATUS "Enabling Extended Window Manager Hints support.")
1020bbfda8aSniaelse()
1030bbfda8aSnia	message(STATUS "Disabling Extended Window Manager Hints support.")
1040bbfda8aSniaendif(USE_EWMH)
1050bbfda8aSnia
1060bbfda8aSnia
1070bbfda8aSnia# System provides regex stuff in libc?
1080bbfda8aSniaif(USE_SREGEX)
1090bbfda8aSnia	check_include_files(regex.h HAS_REGEX_H)
1100bbfda8aSnia	check_function_exists(regexec HAS_REGEXEC)
1110bbfda8aSnia
1120bbfda8aSnia	if(NOT HAS_REGEX_H)
1130bbfda8aSnia		message(FATAL_ERROR "Can't find regex.h")
1140bbfda8aSnia	endif(NOT HAS_REGEX_H)
1150bbfda8aSnia	if(NOT HAS_REGEXEC)
1160bbfda8aSnia		message(FATAL_ERROR "Can't find regexec()")
1170bbfda8aSnia	endif(NOT HAS_REGEXEC)
1180bbfda8aSnia
1190bbfda8aSnia	message(STATUS "Enabling libc regex usage.")
1200bbfda8aSniaelse()
1210bbfda8aSnia	message(FATAL_ERROR "USE_SREGEX=OFF no longer supported.")
1220bbfda8aSniaendif(USE_SREGEX)
123