Salome HOME
Copyright update 2022
[modules/gui.git] / src / GUI_PY / CMakeLists.txt
old mode 100755 (executable)
new mode 100644 (file)
index 53a6365..f5adafc
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-INCLUDE_DIRECTORIES(
-  ${CMAKE_CURRENT_BINARY_DIR}
+INCLUDE(UsePyQt)
+
+# --- resources ---
+
+# uic files / to be processed by pyuic
+SET(_pyuic_FILES
+  SelectVarsDialog.ui
+  genericdialog.ui
+  mytestdialog.ui
 )
-# Python modules to be installed
-SET(mypkgpython_PYTHON
-  __init__.py
-  selectvars.py
+
+# --- scripts ---
+
+# scripts / pyuic wrappings
+PYQT_WRAP_UIC(_pyuic_SCRIPTS ${_pyuic_FILES} TARGET_NAME _target_name_pyuic)
+
+# scripts / static
+SET(_other_SCRIPTS 
   genericdialog.py
-  mytestdialog.py
   helper.py
+  mytestdialog.py
+  selectvars.py
+  dockwidgets.py
 )
-SALOME_INSTALL_SCRIPTS("${mypkgpython_PYTHON}" ${SALOME_INSTALL_PYTHON}/salome/gui)
 
-SET(PYUIC_FILES
-  SelectVarsDialog_ui.py
-  genericdialog_ui.py
-  mytestdialog_ui.py
+SET(_bin_SCRIPTS
+  test_dockwidgets.py
+)
+
+SALOME_CONFIGURE_FILE(qtsalome.py.in qtsalome.py)
+SALOME_CONFIGURE_FILE(__init__.py __init__.py INSTALL ${SALOME_INSTALL_PYTHON}/salome/gui)
+
+SET(_gen_SCRIPTS
+    ${CMAKE_CURRENT_BINARY_DIR}/qtsalome.py
 )
 
-FOREACH(output ${PYUIC_FILES})
-  STRING(REPLACE "_ui.py" ".ui" input ${output})
-  SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
-  SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
-  ADD_CUSTOM_COMMAND(
-    OUTPUT ${output}
-    COMMAND ${PYQT_PYUIC_EXECUTABLE} -o ${output} ${input}
-    MAIN_DEPENDENCY ${input}
-  )
-ENDFOREACH(output ${PYUIC_FILES})
-
-ADD_CUSTOM_TARGET(BUILD_PY_UI_FILES ALL DEPENDS ${PYUIC_FILES})
-
-FOREACH(output ${PYUIC_FILES})
-  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${output} DESTINATION ${SALOME_INSTALL_PYTHON}/salome/gui)
-ENDFOREACH(output ${PYUIC_FILES})
+# --- rules ---
+SALOME_INSTALL_SCRIPTS("${_gen_SCRIPTS}" ${SALOME_INSTALL_PYTHON})
+SALOME_INSTALL_SCRIPTS("${_other_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/gui)
+SALOME_INSTALL_SCRIPTS("${_bin_SCRIPTS}" ${SALOME_INSTALL_SCRIPT_DATA})
+SALOME_INSTALL_SCRIPTS("${_pyuic_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/gui TARGET_NAME _target_name_pyuic_py)
+# add dependency of compiled py files on uic files in order
+# to avoid races problems when compiling in parallel
+ADD_DEPENDENCIES(${_target_name_pyuic_py} ${_target_name_pyuic})