summaryrefslogtreecommitdiffstats
path: root/CMake
diff options
context:
space:
mode:
authorLibravatar Greg V <greg@unrelenting.technology>2016-12-08 15:34:08 +0300
committerLibravatar Greg V <greg@unrelenting.technology>2016-12-09 19:32:07 +0300
commitda26d69cb1b21d582a81af0cad7342fab6596eed (patch)
tree18c24336e664111ba9c3a5bfedec5c340ec0a19d /CMake
parentUse return value of write (diff)
downloadsway-da26d69cb1b21d582a81af0cad7342fab6596eed.tar.gz
sway-da26d69cb1b21d582a81af0cad7342fab6596eed.tar.zst
sway-da26d69cb1b21d582a81af0cad7342fab6596eed.zip
Fix build on FreeBSD
- Make sure CMake always finds absolute paths for Cairo, Pango and GdkPixbuf - Add forgotten json-c include path to swaymsg/CMakeLists.txt - Disable -Werror because of assert warnings - Add correct /proc/pid/file path for FreeBSD - Use libepoll-shim on FreeBSD - Only use Linux capabilities on, well, Linux
Diffstat (limited to 'CMake')
-rw-r--r--CMake/FindCairo.cmake61
-rw-r--r--CMake/FindEpollShim.cmake17
-rw-r--r--CMake/FindGdkPixbuf.cmake65
-rw-r--r--CMake/FindPango.cmake61
4 files changed, 102 insertions, 102 deletions
diff --git a/CMake/FindCairo.cmake b/CMake/FindCairo.cmake
index 36c28095..10ab8fb0 100644
--- a/CMake/FindCairo.cmake
+++ b/CMake/FindCairo.cmake
@@ -8,40 +8,35 @@
8# Define CAIRO_MIN_VERSION for which version desired. 8# Define CAIRO_MIN_VERSION for which version desired.
9# 9#
10 10
11INCLUDE(FindPkgConfig) 11find_package(PkgConfig)
12 12
13IF(Cairo_FIND_REQUIRED) 13if(Cairo_FIND_REQUIRED)
14 SET(_pkgconfig_REQUIRED "REQUIRED") 14 set(_pkgconfig_REQUIRED "REQUIRED")
15ELSE(Cairo_FIND_REQUIRED) 15else(Cairo_FIND_REQUIRED)
16 SET(_pkgconfig_REQUIRED "") 16 set(_pkgconfig_REQUIRED "")
17ENDIF(Cairo_FIND_REQUIRED) 17endif(Cairo_FIND_REQUIRED)
18 18
19IF(CAIRO_MIN_VERSION) 19if(CAIRO_MIN_VERSION)
20 PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo>=${CAIRO_MIN_VERSION}) 20 pkg_check_modules(CAIRO ${_pkgconfig_REQUIRED} cairo>=${CAIRO_MIN_VERSION})
21ELSE(CAIRO_MIN_VERSION) 21else(CAIRO_MIN_VERSION)
22 PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo) 22 pkg_check_modules(CAIRO ${_pkgconfig_REQUIRED} cairo)
23ENDIF(CAIRO_MIN_VERSION) 23endif(CAIRO_MIN_VERSION)
24 24
25IF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) 25if(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND)
26 FIND_PATH(CAIRO_INCLUDE_DIRS cairo.h) 26 find_path(CAIRO_INCLUDE_DIRS cairo.h)
27 FIND_LIBRARY(CAIRO_LIBRARIES cairo) 27 find_library(CAIRO_LIBRARIES cairo)
28else(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND)
29 # Make paths absolute https://stackoverflow.com/a/35476270
30 # Important on FreeBSD because /usr/local/lib is not on /usr/bin/ld's default path
31 set(CAIRO_LIBS_ABSOLUTE)
32 foreach(lib ${CAIRO_LIBRARIES})
33 set(var_name CAIRO_${lib}_ABS)
34 find_library(${var_name} ${lib} ${CAIRO_LIBRARY_DIRS})
35 list(APPEND CAIRO_LIBS_ABSOLUTE ${${var_name}})
36 endforeach()
37 set(CAIRO_LIBRARIES ${CAIRO_LIBS_ABSOLUTE})
38endif(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND)
28 39
29 # Report results 40include(FindPackageHandleStandardArgs)
30 IF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) 41find_package_handle_standard_args(CAIRO DEFAULT_MSG CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS)
31 SET(CAIRO_FOUND 1) 42mark_as_advanced(CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS)
32 IF(NOT Cairo_FIND_QUIETLY)
33 MESSAGE(STATUS "Found Cairo: ${CAIRO_LIBRARIES}")
34 ENDIF(NOT Cairo_FIND_QUIETLY)
35 ELSE(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS)
36 IF(Cairo_FIND_REQUIRED)
37 MESSAGE(SEND_ERROR "Could not find Cairo")
38 ELSE(Cairo_FIND_REQUIRED)
39 IF(NOT Cairo_FIND_QUIETLY)
40 MESSAGE(STATUS "Could not find Cairo")
41 ENDIF(NOT Cairo_FIND_QUIETLY)
42 ENDIF(Cairo_FIND_REQUIRED)
43 ENDIF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS)
44ENDIF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND)
45
46# Hide advanced variables from CMake GUIs
47MARK_AS_ADVANCED(CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS)
diff --git a/CMake/FindEpollShim.cmake b/CMake/FindEpollShim.cmake
new file mode 100644
index 00000000..b6bed142
--- /dev/null
+++ b/CMake/FindEpollShim.cmake
@@ -0,0 +1,17 @@
1# - Find EpollShim
2# Once done, this will define
3#
4# EPOLLSHIM_FOUND - System has EpollShim
5# EPOLLSHIM_INCLUDE_DIRS - The EpollShim include directories
6# EPOLLSHIM_LIBRARIES - The libraries needed to use EpollShim
7
8find_path(EPOLLSHIM_INCLUDE_DIRS NAMES sys/epoll.h sys/timerfd.h HINTS /usr/local/include/libepoll-shim)
9find_library(EPOLLSHIM_LIBRARIES NAMES epoll-shim libepoll-shim HINTS /usr/local/lib)
10
11if (EPOLLSHIM_INCLUDE_DIRS AND EPOLLSHIM_LIBRARIES)
12 set(EPOLLSHIM_FOUND TRUE)
13endif (EPOLLSHIM_INCLUDE_DIRS AND EPOLLSHIM_LIBRARIES)
14
15include(FindPackageHandleStandardArgs)
16find_package_handle_standard_args(EPOLLSHIM DEFAULT_MSG EPOLLSHIM_LIBRARIES EPOLLSHIM_INCLUDE_DIRS)
17mark_as_advanced(EPOLLSHIM_INCLUDE_DIRS EPOLLSHIM_LIBRARIES)
diff --git a/CMake/FindGdkPixbuf.cmake b/CMake/FindGdkPixbuf.cmake
index 4ea1d5b9..9cad4f92 100644
--- a/CMake/FindGdkPixbuf.cmake
+++ b/CMake/FindGdkPixbuf.cmake
@@ -8,43 +8,36 @@
8# Define GDK_PIXBUF_MIN_VERSION for which version desired. 8# Define GDK_PIXBUF_MIN_VERSION for which version desired.
9# 9#
10 10
11INCLUDE(FindPkgConfig) 11find_package(PkgConfig)
12 12
13IF(GdkPixbuf_FIND_REQUIRED) 13if(GdkPixbuf_FIND_REQUIRED)
14 SET(_pkgconfig_REQUIRED "REQUIRED") 14 set(_pkgconfig_REQUIRED "REQUIRED")
15ELSE(GdkPixbuf_FIND_REQUIRED) 15else(GdkPixbuf_FIND_REQUIRED)
16 SET(_pkgconfig_REQUIRED "") 16 set(_pkgconfig_REQUIRED "")
17ENDIF(GdkPixbuf_FIND_REQUIRED) 17endif(GdkPixbuf_FIND_REQUIRED)
18 18
19IF(GDK_PIXBUF_MIN_VERSION) 19if(GDK_PIXBUF_MIN_VERSION)
20 PKG_SEARCH_MODULE(GDK_PIXBUF ${_pkgconfig_REQUIRED} "gdk-pixbuf-2.0>=${GDK_PIXBUF_MIN_VERSION}") 20 pkg_check_modules(GDK_PIXBUF ${_pkgconfig_REQUIRED} "gdk-pixbuf-2.0>=${GDK_PIXBUF_MIN_VERSION}")
21ELSE(GDK_PIXBUF_MIN_VERSION) 21else(GDK_PIXBUF_MIN_VERSION)
22 PKG_SEARCH_MODULE(GDK_PIXBUF ${_pkgconfig_REQUIRED} "gdk-pixbuf-2.0") 22 pkg_check_modules(GDK_PIXBUF ${_pkgconfig_REQUIRED} "gdk-pixbuf-2.0")
23ENDIF(GDK_PIXBUF_MIN_VERSION) 23endif(GDK_PIXBUF_MIN_VERSION)
24 24
25IF(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND) 25if(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND)
26 FIND_PATH(GDK_PIXBUF_INCLUDE_DIRS gdk-pixbuf/gdk-pixbuf.h) 26 find_path(GDK_PIXBUF_INCLUDE_DIRS gdk-pixbuf/gdk-pixbuf.h)
27 FIND_LIBRARY(GDK_PIXBUF_LIBRARIES gdk_pixbuf-2.0) 27 find_library(GDK_PIXBUF_LIBRARIES gdk_pixbuf-2.0)
28else(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND)
29 SET(GdkPixbuf_FOUND 1)
30 # Make paths absolute https://stackoverflow.com/a/35476270
31 # Important on FreeBSD because /usr/local/lib is not on /usr/bin/ld's default path
32 set(GDK_PIXBUF_LIBS_ABSOLUTE)
33 foreach(lib ${GDK_PIXBUF_LIBRARIES})
34 set(var_name GDK_PIXBUF_${lib}_ABS)
35 find_library(${var_name} ${lib} ${GDK_PIXBUF_LIBRARY_DIRS})
36 list(APPEND GDK_PIXBUF_LIBS_ABSOLUTE ${${var_name}})
37 endforeach()
38 set(GDK_PIXBUF_LIBRARIES ${GDK_PIXBUF_LIBS_ABSOLUTE})
39endif(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND)
28 40
29 # Report results 41include(FindPackageHandleStandardArgs)
30 IF(GDK_PIXBUF_LIBRARIES AND GDK_PIXBUF_INCLUDE_DIRS) 42find_package_handle_standard_args(GDK_PIXBUF DEFAULT_MSG GDK_PIXBUF_LIBRARIES GDK_PIXBUF_INCLUDE_DIRS)
31 SET(GDK_PIXBUF_FOUND 1) 43mark_as_advanced(GDK_PIXBUF_LIBRARIES GDK_PIXBUF_INCLUDE_DIRS)
32 SET(GdkPixbuf_FOUND 1)
33 IF(NOT GdkPixbuf_FIND_QUIETLY)
34 MESSAGE(STATUS "Found GdkPixbuf: ${GDK_PIXBUF_LIBRARIES}")
35 ENDIF(NOT GdkPixbuf_FIND_QUIETLY)
36 ELSE(GDK_PIXBUF_LIBRARIES AND GDK_PIXBUF_INCLUDE_DIRS)
37 IF(GdkPixbuf_FIND_REQUIRED)
38 MESSAGE(SEND_ERROR "Could not find GdkPixbuf")
39 ELSE(GdkPixbuf_FIND_REQUIRED)
40 IF(NOT GdkPixbuf_FIND_QUIETLY)
41 MESSAGE(STATUS "Could not find GdkPixbuf")
42 ENDIF(NOT GdkPixbuf_FIND_QUIETLY)
43 ENDIF(GdkPixbuf_FIND_REQUIRED)
44 ENDIF(GDK_PIXBUF_LIBRARIES AND GDK_PIXBUF_INCLUDE_DIRS)
45ELSE(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND)
46 SET(GdkPixbuf_FOUND 1)
47ENDIF(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND)
48
49# Hide advanced variables from CMake GUIs
50MARK_AS_ADVANCED(GDK_PIXBUF_LIBRARIES GDK_PIXBUF_INCLUDE_DIRS)
diff --git a/CMake/FindPango.cmake b/CMake/FindPango.cmake
index 64bf9ac4..eb296d75 100644
--- a/CMake/FindPango.cmake
+++ b/CMake/FindPango.cmake
@@ -8,40 +8,35 @@
8# Define PANGO_MIN_VERSION for which version desired. 8# Define PANGO_MIN_VERSION for which version desired.
9# 9#
10 10
11INCLUDE(FindPkgConfig) 11find_package(PkgConfig)
12 12
13IF(Pango_FIND_REQUIRED) 13if(Pango_FIND_REQUIRED)
14 SET(_pkgconfig_REQUIRED "REQUIRED") 14 set(_pkgconfig_REQUIRED "REQUIRED")
15ELSE(Pango_FIND_REQUIRED) 15else(Pango_FIND_REQUIRED)
16 SET(_pkgconfig_REQUIRED "") 16 set(_pkgconfig_REQUIRED "")
17ENDIF(Pango_FIND_REQUIRED) 17endif(Pango_FIND_REQUIRED)
18 18
19IF(PANGO_MIN_VERSION) 19if(PANGO_MIN_VERSION)
20 PKG_SEARCH_MODULE(PANGO ${_pkgconfig_REQUIRED} "pango>=${PANGO_MIN_VERSION} pangocairo>=${PANGO_MIN_VERSION}") 20 pkg_check_modules(PANGO ${_pkgconfig_REQUIRED} "pango>=${PANGO_MIN_VERSION}" "pangocairo>=${PANGO_MIN_VERSION}")
21ELSE(PANGO_MIN_VERSION) 21else(PANGO_MIN_VERSION)
22 PKG_SEARCH_MODULE(PANGO ${_pkgconfig_REQUIRED} "pango pangocairo") 22 pkg_check_modules(PANGO ${_pkgconfig_REQUIRED} pango pangocairo)
23ENDIF(PANGO_MIN_VERSION) 23endif(PANGO_MIN_VERSION)
24 24
25IF(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND) 25if(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND)
26 FIND_PATH(PANGO_INCLUDE_DIRS pango.h) 26 find_path(PANGO_INCLUDE_DIRS pango.h)
27 FIND_LIBRARY(PANGO_LIBRARIES pango pangocairo) 27 find_library(PANGO_LIBRARIES pango pangocairo)
28else(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND)
29 # Make paths absolute https://stackoverflow.com/a/35476270
30 # Important on FreeBSD because /usr/local/lib is not on /usr/bin/ld's default path
31 set(PANGO_LIBS_ABSOLUTE)
32 foreach(lib ${PANGO_LIBRARIES})
33 set(var_name PANGO_${lib}_ABS)
34 find_library(${var_name} ${lib} ${PANGO_LIBRARY_DIRS})
35 list(APPEND PANGO_LIBS_ABSOLUTE ${${var_name}})
36 endforeach()
37 set(PANGO_LIBRARIES ${PANGO_LIBS_ABSOLUTE})
38endif(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND)
28 39
29 # Report results 40include(FindPackageHandleStandardArgs)
30 IF(PANGO_LIBRARIES AND PANGO_INCLUDE_DIRS) 41find_package_handle_standard_args(PANGO DEFAULT_MSG PANGO_LIBRARIES PANGO_INCLUDE_DIRS)
31 SET(PANGO_FOUND 1) 42mark_as_advanced(PANGO_LIBRARIES PANGO_INCLUDE_DIRS)
32 IF(NOT Pango_FIND_QUIETLY)
33 MESSAGE(STATUS "Found Pango: ${PANGO_LIBRARIES}")
34 ENDIF(NOT Pango_FIND_QUIETLY)
35 ELSE(PANGO_LIBRARIES AND PANGO_INCLUDE_DIRS)
36 IF(Pango_FIND_REQUIRED)
37 MESSAGE(SEND_ERROR "Could not find Pango")
38 ELSE(Pango_FIND_REQUIRED)
39 IF(NOT Pango_FIND_QUIETLY)
40 MESSAGE(STATUS "Could not find Pango")
41 ENDIF(NOT Pango_FIND_QUIETLY)
42 ENDIF(Pango_FIND_REQUIRED)
43 ENDIF(PANGO_LIBRARIES AND PANGO_INCLUDE_DIRS)
44ENDIF(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND)
45
46# Hide advanced variables from CMake GUIs
47MARK_AS_ADVANCED(PANGO_LIBRARIES PANGO_INCLUDE_DIRS)