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 build_rust = find_program('build_rust.sh') rusty = custom_target( 'rusty', output: ['libslim.a'], command: [build_rust, meson.current_source_dir()], ) 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, rusty]) # # 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