File: xwin.cmake

package info (click to toggle)
plplot 5.15.0%2Bdfsg-19
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 31,312 kB
  • sloc: ansic: 79,707; xml: 28,583; cpp: 20,033; ada: 19,456; tcl: 12,081; f90: 11,431; ml: 7,276; java: 6,863; python: 6,792; sh: 3,274; perl: 828; lisp: 75; makefile: 50; sed: 34; fortran: 5
file content (71 lines) | stat: -rw-r--r-- 3,365 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# cmake/modules/xwin.cmake
#
# Copyright (C) 2006  Alan W. Irwin
#
# This file is part of PLplot.
#
# PLplot is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; version 2 of the License.
#
# PLplot is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public License
# along with the file PLplot; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA

# Module for determining all configuration variables related to the xwin
# device driver.
# The following variables are set/modified:
# PLD_xwin		  - ON means the xwin device is enabled.
# xwin_COMPILE_FLAGS	  - individual COMPILE_FLAGS required to compile xwin
# 			    device.
# xwin_LINK_FLAGS	  - individual LINK_FLAGS for dynamic xwin device.
# DRIVERS_LINK_FLAGS	  - list of LINK_FLAGS for all static devices.
# PL_HAVE_PTHREAD         - ON means use pthreads with xwin driver.
# PLPLOT_MUTEX_RECURSIVE  - Portable definition for PTHREAD_MUTEX_RECURSIVE
if(PLD_xwin)
  if(X11_FOUND)
    set(xwin_COMPILE_FLAGS "${X11_COMPILE_FLAGS}")
    set(xwin_LINK_FLAGS "${X11_LIBRARIES}")
    if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
      # turn PL_HAVE_PTHREAD OFF by default for Mac OS X since it doesn't
      # work for Mac OS X 10.4.  Werner says it does work for vanilla
      # XQuartz X11, but the official Apple version of X(Quartz) for 10.5
      # doesn't have all the fixes of the vanilla version so he doesn't trust
      # it.  This his advice for now is to be conservative until we can
      # get a clear report that official X works for 10.5.
      option(PL_HAVE_PTHREAD "Use pthreads with the xwin driver" OFF)
    else(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
      # Turn PL_HAVE_PTHREAD ON by default for other platforms now that
      # the tk segmentation fault has been cured.
      option(PL_HAVE_PTHREAD "Use pthreads with the xwin driver" ON)
    endif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
    if(PL_HAVE_PTHREAD)
      find_package(Threads)
      if(CMAKE_USE_PTHREADS_INIT)
        set(xwin_LINK_FLAGS ${xwin_LINK_FLAGS} ${CMAKE_THREAD_LIBS_INIT})
	cmake_link_flags(xwin_LINK_FLAGS "${xwin_LINK_FLAGS}")
	if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
	  set(PLPLOT_MUTEX_RECURSIVE "PTHREAD_MUTEX_RECURSIVE_NP")
 	elseif(CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD")
 	  set(PLPLOT_MUTEX_RECURSIVE "PTHREAD_MUTEX_RECURSIVE_NP")
	else(CMAKE_SYSTEM_NAME STREQUAL "Linux")
	  set(PLPLOT_MUTEX_RECURSIVE "PTHREAD_MUTEX_RECURSIVE")
	endif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
      else(CMAKE_USE_PTHREADS_INIT)
        # I am being super-careful here to follow the autotools model.  In
        # fact, it is possible other thread systems will work as well as
	# pthreads.  So something to investigate for later.
        set(PL_HAVE_PTHREAD OFF)
      endif(CMAKE_USE_PTHREADS_INIT)
    endif(PL_HAVE_PTHREAD)
    set(DRIVERS_LINK_FLAGS ${DRIVERS_LINK_FLAGS} ${xwin_LINK_FLAGS})
  else(X11_FOUND)
    set(PLD_xwin OFF CACHE BOOL "Enable xwin device" FORCE)
  endif(X11_FOUND)
endif(PLD_xwin)