Use cmake properly, basically complete cmake build system rewrite.
Signed-off-by: Tomáš Chvátal <scarabeus@gentoo.org>
This commit is contained in:
committed by
Martin Duquesnoy
parent
e254f76211
commit
9055a55d58
382
CMakeLists.txt
382
CMakeLists.txt
@@ -1,273 +1,169 @@
|
|||||||
# -*- mode: cmake -*-
|
# -*- mode: cmake -*-
|
||||||
#Cmakelists.txt
|
|
||||||
# Minimum version of CMake
|
# Minimal version of CMake
|
||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6.0)
|
||||||
|
cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
|
||||||
if(COMMAND cmake_policy)
|
if(COMMAND cmake_policy)
|
||||||
cmake_policy(VERSION 2.6)
|
cmake_policy(SET CMP0003 NEW)
|
||||||
endif()
|
endif(COMMAND cmake_policy)
|
||||||
|
|
||||||
CONFIGURE_FILE(
|
# set some default options
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} )
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
set(CMAKE_COLOR_MAKEFILE ON)
|
||||||
IMMEDIATE @ONLY)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
set(CMAKE_BUILD_TYPE_SHARED_LIBS ON)
|
||||||
|
set(CMAKE_C_FLAGS $ENV{CFLAGS})
|
||||||
|
set(CMAKE_CXX_FLAGS $ENV{CXXFLAGS})
|
||||||
|
set(CMAKE_LINK_FLAGS $ENV{LDFLAGS})
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(uninstall
|
# include macros
|
||||||
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
include(MacroConfigureFile)
|
||||||
|
|
||||||
# Source and build dirs
|
# uninstall
|
||||||
set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
configure_file(
|
||||||
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||||
|
IMMEDIATE @ONLY )
|
||||||
|
add_custom_target( uninstall
|
||||||
|
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" )
|
||||||
|
|
||||||
# Project name - wmfs
|
# Project name - wmfs
|
||||||
set(PROJECT_NAME wmfs)
|
set(PROJECT_NAME wmfs)
|
||||||
|
set(VERSION "WMFS-201008")
|
||||||
project(${PROJECT_NAME} C)
|
project(${PROJECT_NAME} C)
|
||||||
|
|
||||||
# Definition of the wmfs source
|
find_package(PkgConfig REQUIRED)
|
||||||
set(wmfs_src
|
# required packages
|
||||||
src/parse/parse.c
|
pkg_check_modules(FREETYPE REQUIRED freetype2)
|
||||||
src/barwin.c
|
pkg_check_modules(X11 REQUIRED x11)
|
||||||
src/client.c
|
pkg_check_modules(XFT REQUIRED xft)
|
||||||
src/config.c
|
|
||||||
src/
|
|
||||||
src/draw.c
|
|
||||||
src/event.c
|
|
||||||
src/ewmh.c
|
|
||||||
src/frame.c
|
|
||||||
src/getinfo.c
|
|
||||||
src/infobar.c
|
|
||||||
src/init.c
|
|
||||||
src/launcher.c
|
|
||||||
src/layout.c
|
|
||||||
src/menu.c
|
|
||||||
src/mouse.c
|
|
||||||
src/screen.c
|
|
||||||
src/status.c
|
|
||||||
src/systray.c
|
|
||||||
src/tag.c
|
|
||||||
src/util.c
|
|
||||||
src/viwmfs.c
|
|
||||||
src/wmfs.c)
|
|
||||||
|
|
||||||
# Set the executable from the wmfs_src
|
|
||||||
add_executable(wmfs ${wmfs_src})
|
|
||||||
|
|
||||||
# Set the version
|
|
||||||
set(VERSION "WMFS-201008")
|
|
||||||
|
|
||||||
# FLAGS
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -ansi")
|
|
||||||
|
|
||||||
# Linker FLAGS
|
|
||||||
|
|
||||||
set(DEFAULT_LDFLAGS "-L /usr/local/lib -lpthread")
|
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES NetBSD)
|
|
||||||
message("-- NetBSD system found - Using /usr/pkg/lib for linker")
|
|
||||||
set(LDFLAGS "${DEFAULT_LDFLAGS} -L /usr/pkg/lib")
|
|
||||||
else(CMAKE_SYSTEM_NAME MATCHES NetBSD)
|
|
||||||
set(LDFLAGS ${DEFAULT_LDFLAGS})
|
|
||||||
endif(CMAKE_SYSTEM_NAME MATCHES NetBSD)
|
|
||||||
|
|
||||||
set_target_properties(wmfs PROPERTIES LINK_FLAGS ${LDFLAGS})
|
|
||||||
# Includes dir for libs in build_dir
|
|
||||||
include_directories(
|
include_directories(
|
||||||
${BUILD_DIR}/src
|
${FREETYPE_INCLUDE_DIRS}
|
||||||
)
|
${X11_INCLUDE_DIRS}
|
||||||
|
${XFT_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
# Package find
|
set(CMAKE_LINK_LIBRARIES
|
||||||
find_package(Freetype)
|
${FREETYPE_LIBRARIES}
|
||||||
if(FREETYPE_FOUND)
|
${X11_LIBRARIES}
|
||||||
include_directories(${FREETYPE_INCLUDE_DIRS})
|
${XFT_LIBRARIES}
|
||||||
else (FREETYPE_FOUND)
|
-lpthread
|
||||||
message(FATAL_ERROR "Could not find Freetype")
|
)
|
||||||
endif (FREETYPE_FOUND)
|
|
||||||
|
|
||||||
find_package(X11)
|
# options
|
||||||
if(X11_FOUND)
|
option(BUILD_DOC "Generate documentation using doxygen" OFF)
|
||||||
include_directories(${X11_INCLUDE_DIR})
|
option(WITH_XINERAMA "Build with Xinerama support" ON)
|
||||||
else (X11_FOUND)
|
option(WITH_XRANDR "Build with Xrandr support" ON)
|
||||||
message(FATAL_ERROR "Could not find X11")
|
option(WITH_IMLIB2 "Build with Imlib2 support" ON)
|
||||||
endif (X11_FOUND)
|
|
||||||
|
|
||||||
# Link Libraries
|
# optional finders
|
||||||
set(LIBRARIES_TO_LINK
|
if(WITH_XINERAMA)
|
||||||
${FREETYPE_LIBRARIES}
|
add_definitions(-DHAVE_XINIERAMA)
|
||||||
${X11_LIBRARIES}
|
pkg_check_modules(XINERAMA REQUIRED xinerama)
|
||||||
Xft)
|
include_directories(${XINERAMA_INCLUDE_DIRS})
|
||||||
|
set(CMAKE_LINK_LIBRARIES ${XINERAMA_LIBRARIES} ${CMAKE_LINK_LIBRARIES})
|
||||||
|
else(WITH_XINERAMA)
|
||||||
|
message(STATUS "Not building with Xinerama support")
|
||||||
|
endif(WITH_XINERAMA)
|
||||||
|
|
||||||
# Includes
|
if(WITH_XRANDR)
|
||||||
include(FindDoxygen)
|
add_definitions(-DHAVE_XRANDR)
|
||||||
include(FindPkgConfig)
|
pkg_check_modules(XRANDR REQUIRED xrandr)
|
||||||
|
include_directories(${XRANDR_INCLUDE_DIRS})
|
||||||
|
set(CMAKE_LINK_LIBRARIES ${XRANDR_LIBRARIES} ${CMAKE_LINK_LIBRARIES})
|
||||||
|
else(WITH_XRANDR)
|
||||||
|
message(STATUS "Not building with Xrandr support")
|
||||||
|
endif(WITH_XRANDR)
|
||||||
|
|
||||||
# Use pkgconfig to get required libraries
|
if(WITH_IMLIB2)
|
||||||
pkg_check_modules(WMFS_REQUIRED REQUIRED
|
add_definitions(-DHAVE_IMLIB)
|
||||||
x11
|
pkg_check_modules(IMLIB2 REQUIRED imlib2)
|
||||||
freetype2
|
include_directories(${IMLIB2_INCLUDE_DIRS})
|
||||||
xft)
|
set(CMAKE_LINK_LIBRARIES ${IMLIB2_LIBRARIES} ${CMAKE_LINK_LIBRARIES})
|
||||||
|
else(WITH_IMLIB2)
|
||||||
|
message(STATUS "Not building with Imlib2 support")
|
||||||
|
endif(WITH_IMLIB2)
|
||||||
|
|
||||||
# Optional dependencies check
|
set(CMAKE_SYSCONFDIR ${CMAKE_INSTALL_PREFIX}/etc/ CACHE PATH "Config directory")
|
||||||
|
set(CMAKE_XDGCONFDIR ${CMAKE_SYSCONFDIR}/xdg/ CACHE PATH "XDG config directory")
|
||||||
|
set(CMAKE_DATADIR ${CMAKE_INSTALL_PREFIX}/share/ CACHE PATH "Data directory")
|
||||||
|
set(CMAKE_DOCDIR ${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}-${VERSION} CACHE PATH "Data directory")
|
||||||
|
|
||||||
# Check for xinerama
|
# set default terminal for user
|
||||||
pkg_check_modules(HAVE_XINERAMA xinerama)
|
set(WMFS_TERM xterm)
|
||||||
if(HAVE_XINERAMA_FOUND)
|
|
||||||
set(WMFS_HAVE_XINERAMA "#define HAVE_XINERAMA")
|
|
||||||
set(LIBRARIES_TO_LINK ${LIBRARIES_TO_LINK} Xinerama)
|
|
||||||
else()
|
|
||||||
set(WMFS_HAVE_XINERAMA "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Check for xrandr
|
# configure files
|
||||||
pkg_check_modules(HAVE_XRANDR xrandr)
|
set(CONFIGURE_FILES
|
||||||
if(HAVE_XRANDR_FOUND)
|
|
||||||
set(WMFS_HAVE_XRANDR "#define HAVE_XRANDR")
|
|
||||||
set(LIBRARIES_TO_LINK ${LIBRARIES_TO_LINK} Xrandr)
|
|
||||||
else()
|
|
||||||
set(WMFS_HAVE_XRANDR "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Check for Imlib
|
|
||||||
pkg_check_modules(HAVE_IMLIB imlib2)
|
|
||||||
if(HAVE_IMLIB_FOUND)
|
|
||||||
set(WMFS_HAVE_IMLIB "#define HAVE_IMLIB")
|
|
||||||
set(LIBRARIES_TO_LINK ${LIBRARIES_TO_LINK} Imlib2)
|
|
||||||
else()
|
|
||||||
set(WMFS_HAVE_IMLIB "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_link_libraries(wmfs ${LIBRARIES_TO_LINK})
|
|
||||||
|
|
||||||
# Messages
|
|
||||||
message("Project version: ${VERSION}")
|
|
||||||
message("Using these CFLAGS: ${CMAKE_C_FLAGS}")
|
|
||||||
message("Using these LDFLAGS: ${LDFLAGS}")
|
|
||||||
message("Linking with theses libraries : ${LIBRARIES_TO_LINK}")
|
|
||||||
|
|
||||||
# Generating man page
|
|
||||||
find_program(GZIP_EXECUTABLE gzip)
|
|
||||||
if(NOT GZIP_EXECUTABLE)
|
|
||||||
message(STATUS "Looking for gzip -- not found")
|
|
||||||
message(STATUS "Could not generating man page")
|
|
||||||
else()
|
|
||||||
message(STATUS "Looking for gzip -- ${GZIP_EXECUTABLE}")
|
|
||||||
message(STATUS "Generating man page")
|
|
||||||
set(WMFS_MAN1_FILES ${BUILD_DIR}/wmfs.1.gz)
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${GZIP_EXECUTABLE} -c wmfs.1
|
|
||||||
WORKING_DIRECTORY ${SOURCE_DIR}
|
|
||||||
OUTPUT_FILE ${WMFS_MAN1_FILES})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Generating CHANGELOG
|
|
||||||
find_program(GIT_EXECUTABLE git)
|
|
||||||
if(EXISTS ${SOURCE_DIR}/.git/HEAD AND GIT_EXECUTABLE)
|
|
||||||
message(STATUS "Looking for git -- ${GIT_EXECUTABLE}")
|
|
||||||
message(STATUS "Git dir -- Generating changelog...")
|
|
||||||
set(PROJECT_CHANGELOG ${SOURCE_DIR}/changelog)
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${GIT_EXECUTABLE} log
|
|
||||||
WORKING_DIRECTORY ${SOURCE_DIR}
|
|
||||||
OUTPUT_FILE ${PROJECT_CHANGELOG})
|
|
||||||
else()
|
|
||||||
message(STATUS "Looking for git -- not found")
|
|
||||||
message(STATUS "Could not generating changelog")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# sets
|
|
||||||
# {{{ Install path and configuration variables
|
|
||||||
if(DEFINED PREFIX)
|
|
||||||
set(PREFIX ${PREFIX} CACHE PATH "install prefix")
|
|
||||||
set(CMAKE_INSTALL_PREFIX ${PREFIX})
|
|
||||||
else()
|
|
||||||
set(PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "install prefix")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#If a sysconfdir is specified, use it instead
|
|
||||||
#of the default configuration dir.
|
|
||||||
if(DEFINED SYSCONFDIR)
|
|
||||||
set(SYSCONFDIR ${SYSCONFDIR} CACHE PATH "config directory")
|
|
||||||
else()
|
|
||||||
set(SYSCONFDIR /etc CACHE PATH "config directory")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#If an XDG Config Dir is specificed, use it instead
|
|
||||||
#of the default XDG configuration dir.
|
|
||||||
if(DEFINED XDG_CONFIG_DIR)
|
|
||||||
set(XDG_CONFIG_DIR ${XDG_CONFIG_SYS} CACHE PATH "xdg config directory")
|
|
||||||
else()
|
|
||||||
set(XDG_CONFIG_DIR ${SYSCONFDIR}/xdg CACHE PATH "xdg config directory")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# setting WMFS_XSESSION_PATH
|
|
||||||
if(DEFINED WMFS_XSESSION_PATH)
|
|
||||||
set(WMFS_XSESSION_PATH ${WMFS_XSESSION_PATH} CACHE PATH "wmfs xsessions directory")
|
|
||||||
else()
|
|
||||||
set(WMFS_XSESSION_PATH ${PREFIX}/share/xsessions CACHE PATH "wmfs xsessions directory")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(DEFINED WMFS_MAN_PATH)
|
|
||||||
set(WMFS_MAN_PATH ${WMFS_MAN_PATH} CACHE PATH "wmfs manpage directory")
|
|
||||||
else()
|
|
||||||
set(WMFS_MAN_PATH ${PREFIX}/share/man CACHE PATH "wmfs manpage directory")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(DOXYGEN_EXECUTABLE)
|
|
||||||
add_custom_target(doc
|
|
||||||
COMMAND ${DOXYGEN_EXECUTABLE} ${SOURCE_DIR}/wmfs.doxygen
|
|
||||||
WORKING_DIRECTORY ${BUILD_DIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_program(URXVT_EXECUTABLE urxvt)
|
|
||||||
if(URXVT_EXECUTABLE)
|
|
||||||
set(WMFS_TERM urxvt)
|
|
||||||
else()
|
|
||||||
set(WMFS_TERM xterm)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Remplace strings in configs
|
|
||||||
set(WMFS_VERSION ${VERSION})
|
|
||||||
set(WMFS_COMPILE_MACHINE ${CMAKE_SYSTEM_PROCESSOR})
|
|
||||||
set(WMFS_COMPILE_BY $ENV{USER})
|
|
||||||
set(WMFS_COMPILE_FLAGS ${CMAKE_C_FLAGS})
|
|
||||||
set(WMFS_LINKED_LIBS ${LIBRARIES_TO_LINK})
|
|
||||||
set(WMFS_SYSCONFDIR ${XDG_CONFIG_DIR}/${PROJECT_NAME})
|
|
||||||
set(WMFS_SOURCE_DIR ${SOURCE_DIR})
|
|
||||||
|
|
||||||
# Configure files
|
|
||||||
set(wmfs_configure_files
|
|
||||||
src/config.h.in
|
src/config.h.in
|
||||||
wmfs.doxygen.in
|
wmfs.doxygen.in
|
||||||
wmfsrc.in)
|
wmfsrc.in)
|
||||||
|
foreach(file ${CONFIGURE_FILES})
|
||||||
|
ConfigureFile(${file})
|
||||||
|
endforeach(file)
|
||||||
|
|
||||||
macro(a_configure_file file)
|
# add the source directory
|
||||||
string(REGEX REPLACE ".in\$" "" outfile ${file})
|
add_subdirectory(src)
|
||||||
message(STATUS "Configuring ${outfile}")
|
|
||||||
configure_file(${SOURCE_DIR}/${file}
|
|
||||||
${SOURCE_DIR}/${outfile}
|
|
||||||
ESCAPE_QUOTE
|
|
||||||
@ONLY)
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
foreach(file ${wmfs_configure_files})
|
# documentation
|
||||||
a_configure_file(${file})
|
if(BUILD_DOC)
|
||||||
endforeach()
|
find_package(Doxygen REQUIRED)
|
||||||
|
if(DOXYGEN_FOUND)
|
||||||
|
add_custom_target(doc
|
||||||
|
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wmfs.doxygen
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
else(DOXYGEN_FOUND)
|
||||||
|
MESSAGE(FATAL_ERROR "Doxygen executable not found")
|
||||||
|
endif(DOXYGEN_FOUND)
|
||||||
|
endif(BUILD_DOC)
|
||||||
|
|
||||||
set(PROJECT_DATA_PATH share/${PROJECT_NAME})
|
# Generating ChangeLog only for live version, for release we generate it to tarball
|
||||||
set(PROJECT_TODO ${SOURCE_DIR}/TODO)
|
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog)
|
||||||
set(PROJECT_README ${SOURCE_DIR}/README)
|
find_program(GIT_EXECUTABLE git)
|
||||||
set(PROJECT_DEFAULT_CONF ${SOURCE_DIR}/wmfsrc)
|
if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD AND GIT_EXECUTABLE)
|
||||||
|
message(STATUS "<<< Generating ChangeLog... >>>")
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${GIT_EXECUTABLE} log
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog)
|
||||||
|
else(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD AND GIT_EXECUTABLE)
|
||||||
|
message(STATUS "No ChangeLog present and git not found")
|
||||||
|
message(STATUS "<<< Will not generate ChangeLog >>>")
|
||||||
|
endif(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD AND GIT_EXECUTABLE)
|
||||||
|
endif(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog)
|
||||||
|
|
||||||
# installs
|
# manpage (compression handled by system not by us)
|
||||||
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/wmfs.1 DESTINATION ${CMAKE_DATADIR}/man/man1)
|
||||||
|
|
||||||
if(WMFS_MAN1_FILES)
|
# install docs
|
||||||
install(FILES ${WMFS_MAN1_FILES} DESTINATION ${WMFS_MAN_PATH}/man1)
|
# changelog || can have 2 locations based on whether we generate it or not
|
||||||
endif()
|
if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog)
|
||||||
|
set(WMFS_DOCS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog ${WMFS_DOCS})
|
||||||
|
endif(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog)
|
||||||
|
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog)
|
||||||
|
set(WMFS_DOCS ${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog ${WMFS_DOCS})
|
||||||
|
endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog)
|
||||||
|
set(WMFS_DOCS
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/TODO
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/README
|
||||||
|
${WMFS_DOCS}
|
||||||
|
)
|
||||||
|
install(FILES ${WMFS_DOCS} DESTINATION ${CMAKE_DOCDIR})
|
||||||
|
|
||||||
if(PROJECT_CHANGELOG)
|
# config file
|
||||||
install(FILES ${PROJECT_CHANGELOG} DESTINATION ${PROJECT_DATA_PATH})
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/wmfsrc DESTINATION ${CMAKE_SYSCONFDIR}/${PROJECT_NAME})
|
||||||
endif()
|
|
||||||
|
|
||||||
install(FILES ${PROJECT_TODO} ${PROJECT_README}
|
# xsession
|
||||||
${PROJECT_DEFAULT_CONF} DESTINATION ${PROJECT_DATA_PATH})
|
install(FILES "wmfs.desktop" DESTINATION ${CMAKE_DATADIR}/xsessions)
|
||||||
install(FILES ${PROJECT_DEFAULT_CONF} DESTINATION ${WMFS_SYSCONFDIR})
|
|
||||||
install(FILES "wmfs.desktop" DESTINATION ${WMFS_XSESSION_PATH})
|
# Status messages
|
||||||
|
message(STATUS "<<< ${PROJECT_NAME} ${VERSION} configuration >>>
|
||||||
|
Build type ${CMAKE_BUILD_TYPE}
|
||||||
|
Install path ${CMAKE_INSTALL_PREFIX}
|
||||||
|
Compiler flags:
|
||||||
|
C ${CMAKE_C_FLAGS}
|
||||||
|
C++ ${CMAKE_CXX_FLAGS}
|
||||||
|
Linker flags:
|
||||||
|
Executable ${CMAKE_EXE_LINKER_FLAGS}
|
||||||
|
Module ${CMAKE_MODULE_LINKER_FLAGS}
|
||||||
|
Shared ${CMAKE_SHARED_LINKER_FLAGS}\n")
|
||||||
|
|||||||
21
cmake/cmake_uninstall.cmake.in
Executable file
21
cmake/cmake_uninstall.cmake.in
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||||
|
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
|
||||||
|
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||||
|
|
||||||
|
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||||
|
STRING(REGEX REPLACE "\n" ";" files "${files}")
|
||||||
|
FOREACH(file ${files})
|
||||||
|
MESSAGE(STATUS "Uninstalling: \"$ENV{DESTDIR}${file}\"")
|
||||||
|
IF(EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
EXEC_PROGRAM(
|
||||||
|
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||||
|
OUTPUT_VARIABLE rm_out
|
||||||
|
RETURN_VALUE rm_retval
|
||||||
|
)
|
||||||
|
IF(NOT "${rm_retval}" STREQUAL 0)
|
||||||
|
MESSAGE(FATAL_ERROR "Problem when removing: \"$ENV{DESTDIR}${file}\"")
|
||||||
|
ENDIF(NOT "${rm_retval}" STREQUAL 0)
|
||||||
|
ELSE(EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
|
||||||
|
ENDIF(EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
ENDFOREACH(file)
|
||||||
8
cmake/modules/MacroConfigureFile.cmake
Normal file
8
cmake/modules/MacroConfigureFile.cmake
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
macro(ConfigureFile file)
|
||||||
|
string(REGEX REPLACE ".in\$" "" outfile ${file})
|
||||||
|
message(STATUS "<<< Configuring ${outfile} >>>")
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${file}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${outfile}
|
||||||
|
ESCAPE_QUOTE
|
||||||
|
@ONLY)
|
||||||
|
endmacro(ConfigureFile)
|
||||||
34
src/CMakeLists.txt
Normal file
34
src/CMakeLists.txt
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# -*- mode: cmake -*-
|
||||||
|
|
||||||
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/parse)
|
||||||
|
|
||||||
|
SET(WMFS_SOURCES
|
||||||
|
parse/parse.c
|
||||||
|
barwin.c
|
||||||
|
client.c
|
||||||
|
config.c
|
||||||
|
draw.c
|
||||||
|
event.c
|
||||||
|
ewmh.c
|
||||||
|
frame.c
|
||||||
|
getinfo.c
|
||||||
|
infobar.c
|
||||||
|
init.c
|
||||||
|
launcher.c
|
||||||
|
layout.c
|
||||||
|
menu.c
|
||||||
|
mouse.c
|
||||||
|
screen.c
|
||||||
|
status.c
|
||||||
|
systray.c
|
||||||
|
tag.c
|
||||||
|
util.c
|
||||||
|
viwmfs.c
|
||||||
|
wmfs.c
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME} ${WMFS_SOURCES})
|
||||||
|
target_link_libraries(${PROJECT_NAME} ${CMAKE_LINK_LIBRARIES})
|
||||||
|
INSTALL ( TARGETS ${PROJECT_NAME}
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
LIBRARY DESTINATION lib${LIB_SUFFIX} )
|
||||||
@@ -35,16 +35,11 @@
|
|||||||
|
|
||||||
#include "wmfs.h"
|
#include "wmfs.h"
|
||||||
|
|
||||||
#define WMFS_VERSION "@WMFS_VERSION@"
|
#define WMFS_VERSION "@VERSION@"
|
||||||
#define WMFS_COMPILE_MACHINE "@WMFS_COMPILE_MACHINE@"
|
#define WMFS_COMPILE_MACHINE "@CMAKE_SYSTEM_PROCESSOR@"
|
||||||
#define WMFS_COMPILE_BY "@WMFS_COMPILE_BY@"
|
#define WMFS_COMPILE_BY "@ENV{USER}@"
|
||||||
#define WMFS_COMPILE_FLAGS "@WMFS_COMPILE_FLAGS@"
|
#define WMFS_COMPILE_FLAGS "@CMAKE_C_FLAGS@"
|
||||||
#define WMFS_LINKED_LIBS "@WMFS_LINKED_LIBS@"
|
#define WMFS_LINKED_LIBS "@CMAKE_LINK_LIBRARIES@"
|
||||||
#define XDG_CONFIG_DIR "@XDG_CONFIG_DIR@"
|
#define XDG_CONFIG_DIR "@CMAKE_XDGCONFDIR@"
|
||||||
|
|
||||||
/* Optional dependencies */
|
|
||||||
@WMFS_HAVE_XINERAMA@
|
|
||||||
@WMFS_HAVE_XRANDR@
|
|
||||||
@WMFS_HAVE_IMLIB@
|
|
||||||
|
|
||||||
#endif /* CONFIG_H */
|
#endif /* CONFIG_H */
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ WARN_LOGFILE =
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = @SOURCE_DIR@/src
|
INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src
|
||||||
INPUT_ENCODING = UTF-8
|
INPUT_ENCODING = UTF-8
|
||||||
FILE_PATTERNS = *.c \
|
FILE_PATTERNS = *.c \
|
||||||
*.h \
|
*.h \
|
||||||
|
|||||||
Reference in New Issue
Block a user