|  | @@ -0,0 +1,131 @@
 | 
	
		
			
				|  |  | +project(
 | 
	
		
			
				|  |  | +  'slim',
 | 
	
		
			
				|  |  | +  ['c', 'cpp'],
 | 
	
		
			
				|  |  | +  default_options : ['default_library=static'],
 | 
	
		
			
				|  |  | +)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +add_global_arguments('-Wall', language: 'cpp')
 | 
	
		
			
				|  |  | +add_global_arguments('-g', language: 'cpp')
 | 
	
		
			
				|  |  | +add_global_arguments('-O2', language: 'cpp')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# Version
 | 
	
		
			
				|  |  | +slim_version_major = '1'
 | 
	
		
			
				|  |  | +slim_version_minor = '3'
 | 
	
		
			
				|  |  | +slim_version_patch = '6'
 | 
	
		
			
				|  |  | +slim_version = '${SLIM_VERSION_MAJOR}.${SLIM_VERSION_MINOR}.${SLIM_VERSION_PATCH}'
 | 
	
		
			
				|  |  | +add_global_arguments('-DVERSION=${slim_version}', language: 'cpp')
 | 
	
		
			
				|  |  | +cmake_install_prefix = ['/usr/local', 'CACHE', 'PATH', 'Installation Directory']
 | 
	
		
			
				|  |  | +pkgdatadir = '${CMAKE_INSTALL_PREFIX}/share/slim'
 | 
	
		
			
				|  |  | +sysconfdir = '/etc'
 | 
	
		
			
				|  |  | +libdir = '/lib'
 | 
	
		
			
				|  |  | +mandir = '${CMAKE_INSTALL_PREFIX}/share/man'
 | 
	
		
			
				|  |  | +slim_definitions = [
 | 
	
		
			
				|  |  | +  '-DHAVE_SHADOW',
 | 
	
		
			
				|  |  | +  '-DPACKAGE="slim"',
 | 
	
		
			
				|  |  | +  '-DVERSION="1.3.6"',
 | 
	
		
			
				|  |  | +  '-DPKGDATADIR="/usr/local/share/slim"',
 | 
	
		
			
				|  |  | +  '-DSYSCONFDIR="/etc"']
 | 
	
		
			
				|  |  | +add_global_arguments(slim_definitions, language: 'cpp')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# Flags
 | 
	
		
			
				|  |  | +cmake_c_flags = '${CMAKE_C_FLAGS} -Wall -g -O2'
 | 
	
		
			
				|  |  | +cmake_cpp_flags = '${CMAKE_CPP_FLAGS} -Wall -g -O2'
 | 
	
		
			
				|  |  | +cmake_cxx_flags = '${CMAKE_CXX_FLAGS} -Wall -g -O2'
 | 
	
		
			
				|  |  | +# source
 | 
	
		
			
				|  |  | +slim_srcs = ['main.cpp', 'app.cpp', 'numlock.cpp', 'switchuser.cpp', 'png.c', 'jpeg.c']
 | 
	
		
			
				|  |  | +slimlock_srcs = 'slimlock.cpp'
 | 
	
		
			
				|  |  | +common_srcs = ['cfg.cpp', 'image.cpp', 'log.cpp', 'panel.cpp', 'util.cpp']
 | 
	
		
			
				|  |  | +use_pam = true
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +cc = meson.get_compiler('cpp')
 | 
	
		
			
				|  |  | +deps = [
 | 
	
		
			
				|  |  | +  cc.find_library('m'),
 | 
	
		
			
				|  |  | +  cc.find_library('crypt'),
 | 
	
		
			
				|  |  | +  dependency('freetype2'),
 | 
	
		
			
				|  |  | +  dependency('X11'),
 | 
	
		
			
				|  |  | +  dependency('xmu'),
 | 
	
		
			
				|  |  | +  dependency('xft'),
 | 
	
		
			
				|  |  | +  dependency('xrandr'),
 | 
	
		
			
				|  |  | +  dependency('JPEG'),
 | 
	
		
			
				|  |  | +  dependency('PNG'),
 | 
	
		
			
				|  |  | +  dependency('ZLIB'),
 | 
	
		
			
				|  |  | +  dependency('fontconfig'),
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ck = dependency('libconsolekit', required: false)
 | 
	
		
			
				|  |  | +ck_conn = dependency('ck-connector', required: false)
 | 
	
		
			
				|  |  | +if ck.found() and ck_conn.found()
 | 
	
		
			
				|  |  | +  deps += [ck, ck_conn]
 | 
	
		
			
				|  |  | +  slim_srcs += ['Ck.cpp']
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +if use_pam
 | 
	
		
			
				|  |  | +  common_srcs += ['PAM.cpp']
 | 
	
		
			
				|  |  | +  # for now, only build slimlock if we are using PAM.
 | 
	
		
			
				|  |  | +  build_slimlock = '1'
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +# Build common library
 | 
	
		
			
				|  |  | +build_shared_libs = true
 | 
	
		
			
				|  |  | +if build_shared_libs
 | 
	
		
			
				|  |  | +  # message(['STATUS', 'Enable shared library building'])
 | 
	
		
			
				|  |  | +  libslim_lib = library('libslim', common_srcs, dependencies: deps, include_directories: [include_directories('.')])
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +  # message(['STATUS', 'Disable shared library building'])
 | 
	
		
			
				|  |  | +  libslim_lib = static_library('libslim', common_srcs, dependencies: deps)
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# if true
 | 
	
		
			
				|  |  | +#   slimlock_exe = executable('slimlock', slimlock_srcs)
 | 
	
		
			
				|  |  | +# endif
 | 
	
		
			
				|  |  | +# #Set the custom CMake module directory where our include/lib finders are
 | 
	
		
			
				|  |  | +# cmake_module_path = '${CMAKE_SOURCE_DIR}/cmake/modules'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +slim_exe = executable('slim', slim_srcs, dependencies: deps, include_directories: [include_directories('.')], link_with: libslim_lib)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# # Fontconfig
 | 
	
		
			
				|  |  | +# fontconfig_dir = cmake_module_path
 | 
	
		
			
				|  |  | +# # PAM
 | 
	
		
			
				|  |  | +# if false
 | 
	
		
			
				|  |  | +#   # message('\tPAM Enabled')
 | 
	
		
			
				|  |  | +#   PAM_dep = dependency('PAM')
 | 
	
		
			
				|  |  | +#   if 'PAM_FOUND'
 | 
	
		
			
				|  |  | +#     # message('\tPAM Found')
 | 
	
		
			
				|  |  | +#     slim_definitions = [slim_definitions, '-DUSE_PAM']
 | 
	
		
			
				|  |  | +#     # target_link_libraries([project_name, pam_library])
 | 
	
		
			
				|  |  | +#     # target_link_libraries(['slimlock', pam_library])
 | 
	
		
			
				|  |  | +#     # include_directories(pam_include_dir)
 | 
	
		
			
				|  |  | +#   else
 | 
	
		
			
				|  |  | +#     # message('\tPAM Not Found')
 | 
	
		
			
				|  |  | +#   endif
 | 
	
		
			
				|  |  | +# else
 | 
	
		
			
				|  |  | +#   # message('\tPAM disabled')
 | 
	
		
			
				|  |  | +# endif
 | 
	
		
			
				|  |  | +# # ConsoleKit
 | 
	
		
			
				|  |  | +# use_consolekit = false
 | 
	
		
			
				|  |  | +# if use_consolekit
 | 
	
		
			
				|  |  | +#   CkConnector_dep = dependency('CkConnector')
 | 
	
		
			
				|  |  | +#   # message('\tConsoleKit Enabled')
 | 
	
		
			
				|  |  | +#   if 'CKCONNECTOR_FOUND'
 | 
	
		
			
				|  |  | +#     # message('\tConsoleKit Found')
 | 
	
		
			
				|  |  | +#     # DBus check
 | 
	
		
			
				|  |  | +#     DBus_dep = dependency('DBus')
 | 
	
		
			
				|  |  | +#     if 'DBUS_FOUND'
 | 
	
		
			
				|  |  | +#       # message('\tDBus Found')
 | 
	
		
			
				|  |  | +#       # target_link_libraries([project_name, dbus_libraries])
 | 
	
		
			
				|  |  | +#       # include_directories(dbus_arch_include_dir)
 | 
	
		
			
				|  |  | +#       # include_directories(dbus_include_dir)
 | 
	
		
			
				|  |  | +#       slim_definitions = [slim_definitions, '-DUSE_CONSOLEKIT']
 | 
	
		
			
				|  |  | +#       # target_link_libraries([project_name, ckconnector_libraries])
 | 
	
		
			
				|  |  | +#       # include_directories(ckconnector_include_dir)
 | 
	
		
			
				|  |  | +#     else
 | 
	
		
			
				|  |  | +#       # message('\tDBus Not Found')
 | 
	
		
			
				|  |  | +#     endif
 | 
	
		
			
				|  |  | +#   else
 | 
	
		
			
				|  |  | +#     # message('\tConsoleKit Not Found')
 | 
	
		
			
				|  |  | +#     # message('\tConsoleKit disabled')
 | 
	
		
			
				|  |  | +#   endif
 | 
	
		
			
				|  |  | +# else
 | 
	
		
			
				|  |  | +#   # message('\tConsoleKit disabled')
 | 
	
		
			
				|  |  | +# endif
 | 
	
		
			
				|  |  | +# # system librarys
 |