Skip to content

Commit cf6b3bd

Browse files
committed
ENH: i18n: Add GenerateSlicerTranslationQMFiles target
Removes the dependency of library to *.qm files and instead add the target GenerateSlicerTranslationQMFiles allowing to explicitly re-generate the '*.qm" files..
1 parent 35a493b commit cf6b3bd

8 files changed

+158
-154
lines changed

CMake/SlicerMacroBuildApplication.cmake

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,7 @@ macro(slicerMacroBuildAppLibrary)
175175
# Translation
176176
# --------------------------------------------------------------------------
177177
if(Slicer_BUILD_I18N_SUPPORT)
178-
set(TS_DIR
179-
"${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations/"
180-
)
178+
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations")
181179
get_property(Slicer_LANGUAGES GLOBAL PROPERTY Slicer_LANGUAGES)
182180

183181
include(SlicerMacroTranslation)
@@ -187,13 +185,7 @@ macro(slicerMacroBuildAppLibrary)
187185
TS_DIR ${TS_DIR}
188186
TS_BASEFILENAME ${SLICERAPPLIB_NAME}
189187
TS_LANGUAGES ${Slicer_LANGUAGES}
190-
QM_OUTPUT_DIR_VAR QM_OUTPUT_DIR
191-
QM_OUTPUT_FILES_VAR QM_OUTPUT_FILES
192188
)
193-
194-
set_property(GLOBAL APPEND PROPERTY Slicer_QM_OUTPUT_DIRS ${QM_OUTPUT_DIR})
195-
else()
196-
set(QM_OUTPUT_FILES )
197189
endif()
198190

199191
# --------------------------------------------------------------------------
@@ -204,7 +196,6 @@ macro(slicerMacroBuildAppLibrary)
204196
${SLICERAPPLIB_MOC_OUTPUT}
205197
${SLICERAPPLIB_UI_CXX}
206198
${SLICERAPPLIB_QRC_SRCS}
207-
${QM_OUTPUT_FILES}
208199
)
209200
set_target_properties(${lib_name} PROPERTIES LABELS ${lib_name})
210201

CMake/SlicerMacroBuildBaseQtLibrary.cmake

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,7 @@ macro(SlicerMacroBuildBaseQtLibrary)
174174
# Translation
175175
# --------------------------------------------------------------------------
176176
if(Slicer_BUILD_I18N_SUPPORT)
177-
set(TS_DIR
178-
"${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations/"
179-
)
177+
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations")
180178
get_property(Slicer_LANGUAGES GLOBAL PROPERTY Slicer_LANGUAGES)
181179

182180
include(SlicerMacroTranslation)
@@ -186,13 +184,7 @@ macro(SlicerMacroBuildBaseQtLibrary)
186184
TS_DIR ${TS_DIR}
187185
TS_BASEFILENAME ${SLICERQTBASELIB_NAME}
188186
TS_LANGUAGES ${Slicer_LANGUAGES}
189-
QM_OUTPUT_DIR_VAR QM_OUTPUT_DIR
190-
QM_OUTPUT_FILES_VAR QM_OUTPUT_FILES
191187
)
192-
193-
set_property(GLOBAL APPEND PROPERTY Slicer_QM_OUTPUT_DIRS ${QM_OUTPUT_DIR})
194-
else()
195-
set(QM_OUTPUT_FILES )
196188
endif()
197189

198190
# --------------------------------------------------------------------------
@@ -203,7 +195,6 @@ macro(SlicerMacroBuildBaseQtLibrary)
203195
${SLICERQTBASELIB_MOC_OUTPUT}
204196
${SLICERQTBASELIB_UI_CXX}
205197
${SLICERQTBASELIB_QRC_SRCS}
206-
${QM_OUTPUT_FILES}
207198
)
208199
set_target_properties(${lib_name} PROPERTIES LABELS ${lib_name})
209200

CMake/SlicerMacroBuildLoadableModule.cmake

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ macro(slicerMacroBuildLoadableModule)
167167
# Translation
168168
# --------------------------------------------------------------------------
169169
if(Slicer_BUILD_I18N_SUPPORT)
170-
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations/")
170+
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations")
171171
get_property(Slicer_LANGUAGES GLOBAL PROPERTY Slicer_LANGUAGES)
172172

173173
include(SlicerMacroTranslation)
@@ -177,13 +177,7 @@ macro(slicerMacroBuildLoadableModule)
177177
TS_DIR ${TS_DIR}
178178
TS_BASEFILENAME ${LOADABLEMODULE_NAME}
179179
TS_LANGUAGES ${Slicer_LANGUAGES}
180-
QM_OUTPUT_DIR_VAR QM_OUTPUT_DIR
181-
QM_OUTPUT_FILES_VAR QM_OUTPUT_FILES
182180
)
183-
set_property(GLOBAL APPEND PROPERTY Slicer_QM_OUTPUT_DIRS ${QM_OUTPUT_DIR})
184-
185-
else()
186-
set(QM_OUTPUT_FILES )
187181
endif()
188182

189183
# --------------------------------------------------------------------------
@@ -194,7 +188,6 @@ macro(slicerMacroBuildLoadableModule)
194188
${LOADABLEMODULE_MOC_OUTPUT}
195189
${LOADABLEMODULE_UI_CXX}
196190
${LOADABLEMODULE_QRC_SRCS}
197-
${QM_OUTPUT_FILES}
198191
)
199192

200193
# Set loadable modules output path

CMake/SlicerMacroBuildModuleWidgets.cmake

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ macro(SlicerMacroBuildModuleWidgets)
8383
# Translation
8484
#-----------------------------------------------------------------------------
8585
if(Slicer_BUILD_I18N_SUPPORT)
86-
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations/")
86+
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations")
8787
get_property(Slicer_LANGUAGES GLOBAL PROPERTY Slicer_LANGUAGES)
8888

8989
include(SlicerMacroTranslation)
@@ -93,13 +93,7 @@ macro(SlicerMacroBuildModuleWidgets)
9393
TS_DIR ${TS_DIR}
9494
TS_BASEFILENAME ${MODULEWIDGETS_NAME}
9595
TS_LANGUAGES ${Slicer_LANGUAGES}
96-
QM_OUTPUT_DIR_VAR QM_OUTPUT_DIR
97-
QM_OUTPUT_FILES_VAR QM_OUTPUT_FILES
9896
)
99-
set_property(GLOBAL APPEND PROPERTY Slicer_QM_OUTPUT_DIRS ${QM_OUTPUT_DIR})
100-
101-
else()
102-
set(QM_OUTPUT_FILES )
10397
endif()
10498

10599
# --------------------------------------------------------------------------
@@ -110,7 +104,7 @@ macro(SlicerMacroBuildModuleWidgets)
110104
EXPORT_DIRECTIVE ${MODULEWIDGETS_EXPORT_DIRECTIVE}
111105
FOLDER ${MODULEWIDGETS_FOLDER}
112106
INCLUDE_DIRECTORIES ${MODULEWIDGETS_INCLUDE_DIRECTORIES}
113-
SRCS ${MODULEWIDGETS_SRCS} ${QM_OUTPUT_FILES}
107+
SRCS ${MODULEWIDGETS_SRCS}
114108
MOC_SRCS ${MODULEWIDGETS_MOC_SRCS}
115109
UI_SRCS ${MODULEWIDGETS_UI_SRCS}
116110
TARGET_LIBRARIES ${MODULEWIDGETS_TARGET_LIBRARIES}

CMake/SlicerMacroBuildScriptedModule.cmake

Lines changed: 23 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,29 @@ macro(slicerMacroBuildScriptedModule)
112112
# --------------------------------------------------------------------------
113113
# Translations
114114
# --------------------------------------------------------------------------
115-
if("${CTK_COMPILE_PYTHON_SCRIPTS_GLOBAL_TARGET_NAME}" STREQUAL "")
116-
SlicerFunctionAddPythonScriptTrFilesTargets(${MY_SLICER_NAME})
117-
endif()
115+
116+
set(scripts )
117+
foreach(file IN ITEMS ${MY_SLICER_SCRIPTS})
118+
# Append "py" extension if needed
119+
get_filename_component(file_ext ${file} EXT)
120+
if(NOT "${file_ext}" MATCHES "py")
121+
set(file "${file}.py")
122+
endif()
123+
list(APPEND scripts ${file})
124+
endforeach()
125+
126+
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations")
127+
include(SlicerMacroTranslation)
128+
SlicerMacroTranslation(
129+
SRCS ${scripts}
130+
TS_DIR ${TS_DIR}
131+
TS_BASEFILENAME ${MY_SLICER_NAME}
132+
TS_LANGUAGES ${Slicer_LANGUAGES}
133+
)
134+
135+
#if("${CTK_COMPILE_PYTHON_SCRIPTS_GLOBAL_TARGET_NAME}" STREQUAL "")
136+
# SlicerFunctionAddPythonScriptTrFilesTargets(${MY_SLICER_NAME})
137+
#endif()
118138

119139
# --------------------------------------------------------------------------
120140
# Tests
@@ -134,57 +154,3 @@ macro(slicerMacroBuildScriptedModule)
134154
endif()
135155

136156
endmacro()
137-
138-
function(SlicerFunctionAddPythonScriptTrFilesTargets target)
139-
140-
set(rewrite_script "${Slicer_CMAKE_DIR}/RewriteTr.py")
141-
if(NOT EXISTS ${rewrite_script})
142-
message(FATAL_ERROR "Rewrite script does not exist [${rewrite_script}]")
143-
endif()
144-
145-
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Resources/Translations/")
146-
147-
#get_property(Slicer_LANGUAGES GLOBAL PROPERTY Slicer_LANGUAGES)
148-
149-
get_property(_CTK_${target}_PYTHON_SCRIPTS GLOBAL PROPERTY _CTK_${target}_PYTHON_SCRIPTS)
150-
151-
set(rewritten_srcs)
152-
foreach(entry IN LISTS _CTK_${target}_PYTHON_SCRIPTS)
153-
string(REPLACE "|" ";" tuple "${entry}")
154-
list(GET tuple 0 src)
155-
list(GET tuple 1 tgt_file)
156-
list(GET tuple 2 dest_dir)
157-
158-
set(rewritten_src_file "${tgt_file}.tr")
159-
set(rewritten_src "${dest_dir}/${rewritten_src_file}")
160-
161-
add_custom_command(DEPENDS ${src}
162-
COMMAND ${PYTHON_EXECUTABLE}
163-
${rewrite_script} -i ${src} -o ${rewritten_src}
164-
OUTPUT ${rewritten_src}
165-
COMMENT "Generating .py.tr file into binary directory: ${rewritten_src_file}")
166-
167-
list(APPEND rewritten_srcs ${rewritten_src})
168-
endforeach()
169-
170-
include(SlicerMacroTranslation)
171-
SlicerMacroTranslation(
172-
SRCS ${rewritten_srcs}
173-
TS_DIR ${TS_DIR}
174-
TS_BASEFILENAME ${target}
175-
TS_LANGUAGES ${Slicer_LANGUAGES}
176-
QM_OUTPUT_DIR_VAR QM_OUTPUT_DIR
177-
QM_OUTPUT_FILES_VAR QM_OUTPUT_FILES
178-
)
179-
180-
# store the paths where the qm files are located
181-
set_property(GLOBAL APPEND PROPERTY Slicer_QM_OUTPUT_DIRS ${QM_OUTPUT_DIR})
182-
183-
# store the qm files associated with scripted modules
184-
set_property(GLOBAL APPEND PROPERTY QM_SCRIPTED_MODULE_FILES ${QM_OUTPUT_FILES})
185-
186-
set(target_name Add${target}PythonScriptTrFiles)
187-
if(NOT TARGET ${target_name})
188-
add_custom_target(${target_name} DEPENDS ${rewritten_srcs} ${ARGN})
189-
endif()
190-
endfunction()

0 commit comments

Comments
 (0)