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