You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.5 KiB
76 lines
2.5 KiB
6 years ago
|
##### verify required programs ##################
|
||
|
|
||
|
if( NOT DEFINED INTLTOOL_EXTRACT_EXECUTABLE )
|
||
|
find_program( INTLTOOL_EXTRACT_EXECUTABLE
|
||
|
NAMES intltool-extract
|
||
|
HINTS "${TDE_PREFIX}/bin"
|
||
|
)
|
||
|
if( NOT INTLTOOL_EXTRACT_EXECUTABLE )
|
||
|
tde_message_fatal( "intltool-extract is required but not found" )
|
||
|
endif( )
|
||
|
endif( )
|
||
|
|
||
|
|
||
|
##### prepare xscreensavers data files ##########
|
||
|
|
||
|
message( STATUS "Prepare to extract strings from xscreensaver data files..." )
|
||
|
|
||
|
include( ../../FindXscreensaver )
|
||
|
|
||
|
unset( _xsavers_l10n )
|
||
|
file( GLOB _xsaver_files
|
||
|
RELATIVE "${XSCREENSAVER_CONFIG_DIR}"
|
||
|
${XSCREENSAVER_CONFIG_DIR}*.xml )
|
||
|
list( SORT _xsaver_files )
|
||
|
foreach( _xsaver_file ${_xsaver_files} )
|
||
|
string( REGEX REPLACE "\\.xml\$" "" _xsaver_name "${_xsaver_file}" )
|
||
|
if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/${_xsaver_name}.desktop" )
|
||
|
file( READ "${XSCREENSAVER_CONFIG_DIR}${_xsaver_file}" _xsaver_xml )
|
||
|
string( REGEX REPLACE
|
||
|
".*<screensaver[^>]*_label=\"([^\"]*)\".*" "\\1"
|
||
|
_xsaver_label "${_xsaver_xml}" )
|
||
|
message( STATUS "Create desktop file for ${_xsaver_label} (${_xsaver_name})" )
|
||
|
execute_process(
|
||
|
COMMAND ldd "${XSCREENSAVER_DIR}/${_xsaver_name}"
|
||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||
|
OUTPUT_VARIABLE _xsaver_libs
|
||
|
)
|
||
|
set( NAME "${_xsaver_name}" )
|
||
|
set( LABEL "${_xsaver_label}" )
|
||
|
if( "${_xsaver_libs}" MATCHES "libGL" )
|
||
|
set( GL1 "X-TDE-Category=OpenGL Screen Savers" )
|
||
|
set( GL2 "X-TDE-Type=OpenGL" )
|
||
|
else( )
|
||
|
set( GL1 "" )
|
||
|
set( GL2 "" )
|
||
|
endif( )
|
||
|
configure_file(
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/xscreensaver.template
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/${_xsaver_name}.desktop
|
||
|
@ONLY )
|
||
|
endif( )
|
||
|
|
||
|
execute_process(
|
||
|
COMMAND ${INTLTOOL_EXTRACT_EXECUTABLE}
|
||
|
--type=gettext/xml --srcdir ${XSCREENSAVER_CONFIG_DIR} ${_xsaver_file}
|
||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers
|
||
|
OUTPUT_VARIABLE _xsaver_output
|
||
|
)
|
||
|
file( RENAME
|
||
|
"${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/${_xsaver_file}.h"
|
||
|
"${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/${_xsaver_file}.h.tde_l10n" )
|
||
|
list( APPEND _xsavers_l10n "ScreenSavers/${_xsaver_file}.h.tde_l10n" )
|
||
|
endforeach( )
|
||
|
|
||
|
|
||
|
##### create translation templates ##############
|
||
|
|
||
|
tde_l10n_create_template(
|
||
|
CATALOG "kxsconfig"
|
||
|
SOURCES
|
||
|
"."
|
||
|
${_xsavers_l10n}
|
||
|
KEYWORDS
|
||
|
N_
|
||
|
)
|