SET(CMAKE_INCLUDE_CURRENT_DIR ON) SET(CMAKE_AUTOMOC ON) SET(CMAKE_AUTORCC ON) SET(CMAKE_AUTOUIC OFF) #FIND_PACKAGE(Qt4 COMPONENTS QtOpenGL QtXml QtScript QtGui QtCore REQUIRED) SET(HEADERS src/bodypropertyeditor.h src/boundarydivision.h src/boundarypropertyeditor.h src/checkmpi.h src/dynamiceditor.h src/edfeditor.h src/egini.h src/generalsetup.h src/glcontrol.h src/glwidget.h src/helpers.h src/mainwindow.h src/materiallibrary.h src/maxlimits.h src/meshcontrol.h src/meshingthread.h src/meshtype.h src/meshutils.h src/operation.h src/parallel.h src/projectio.h src/sifgenerator.h src/sifwindow.h src/solverparameters.h src/summaryeditor.h src/objectbrowser.h src/solverlogwindow.h src/newprojectdialog.h plugins/egconvert.h plugins/egdef.h plugins/egmain.h plugins/egmesh.h plugins/egnative.h plugins/egtypes.h plugins/egutils.h plugins/elmergrid_api.h plugins/nglib_api.h plugins/tetgen.h plugins/tetlib_api.h twod/renderarea.h twod/twodview.h twod/curveeditor.h) SET(FORMS forms/bodypropertyeditor.ui forms/boundarydivision.ui forms/boundarypropertyeditor.ui forms/generalsetup.ui forms/glcontrol.ui forms/materiallibrary.ui forms/meshcontrol.ui forms/parallel.ui forms/solverparameters.ui forms/summaryeditor.ui forms/newproject.ui) SET(SOURCES src/bodypropertyeditor.cpp src/boundarydivision.cpp src/boundarypropertyeditor.cpp src/checkmpi.cpp src/dynamiceditor.cpp src/edfeditor.cpp src/egini.cpp src/generalsetup.cpp src/glcontrol.cpp src/glwidget.cpp src/helpers.cpp src/main.cpp src/mainwindow.cpp src/materiallibrary.cpp src/maxlimits.cpp src/meshcontrol.cpp src/meshingthread.cpp src/meshtype.cpp src/meshutils.cpp src/operation.cpp src/parallel.cpp src/projectio.cpp src/sifgenerator.cpp src/sifwindow.cpp src/solverparameters.cpp src/summaryeditor.cpp src/solverlogwindow.cpp src/objectbrowser.cpp src/newprojectdialog.cpp plugins/egconvert.cpp plugins/egmain.cpp plugins/egmesh.cpp plugins/egnative.cpp plugins/egutils.cpp plugins/elmergrid_api.cpp plugins/nglib_api.cpp plugins/tetlib_api.cpp twod/renderarea.cpp twod/twodview.cpp twod/curveeditor.cpp) ADD_DEFINITIONS(-DEG_PLUGIN) IF(WITH_QWT) SET(HEADERS ${HEADERS} src/convergenceview.h) SET(SOURCES ${SOURCES} src/convergenceview.cpp) ENDIF(WITH_QWT) IF(WITH_VTK AND NOT WITHOUT_VTKPOST) ADD_DEFINITIONS(-DEG_VTK) #FIND_PACKAGE(VTK REQUIRED) IF(${VTK_VERSION} VERSION_LESS 8.90) INCLUDE(${VTK_USE_FILE}) ENDIF() SET(HEADERS ${HEADERS} vtkpost/axes.h vtkpost/featureedge.h vtkpost/vtkpost.h vtkpost/isosurface.h vtkpost/isocontour.h vtkpost/epmesh.h vtkpost/colorbar.h vtkpost/meshpoint.h vtkpost/meshedge.h vtkpost/surface.h vtkpost/preferences.h vtkpost/vector.h vtkpost/readepfile.h vtkpost/streamline.h vtkpost/timestep.h vtkpost/ecmaconsole.h vtkpost/text.h) SET(FORMS ${FORMS} vtkpost/axes.ui vtkpost/featureedge.ui vtkpost/isosurface.ui vtkpost/isocontour.ui vtkpost/colorbar.ui vtkpost/surface.ui vtkpost/meshpoint.ui vtkpost/meshedge.ui vtkpost/preferences.ui vtkpost/vector.ui vtkpost/readepfile.ui vtkpost/streamline.ui vtkpost/timestep.ui vtkpost/text.ui) SET(SOURCES ${SOURCES} vtkpost/axes.cpp vtkpost/featureedge.cpp vtkpost/vtkpost.cpp vtkpost/isosurface.cpp vtkpost/isocontour.cpp vtkpost/epmesh.cpp vtkpost/colorbar.cpp vtkpost/meshpoint.cpp vtkpost/meshedge.cpp vtkpost/surface.cpp vtkpost/preferences.cpp vtkpost/vector.cpp vtkpost/readepfile.cpp vtkpost/streamline.cpp vtkpost/timestep.cpp vtkpost/ecmaconsole.cpp vtkpost/text.cpp) IF(WITH_MATC) SET(HEADERS ${HEADERS} vtkpost/matc.h vtkpost/mc.h) SET(FORMS ${FORMS} vtkpost/matc.ui) SET(SOURCES ${SOURCES} vtkpost/matc.cpp) ENDIF(WITH_MATC) ENDIF() IF(WITH_OCC) # set(ELMER_USE_OCC_VARIANT "Official Version" CACHE STRING "Official OpenCASCADE version or community edition") # set_property(CACHE ELMER_USE_OCC_VARIANT PROPERTY STRINGS # "Official Version" # "Community Edition" # ) SET(HEADERS ${HEADERS} cad/cadview.h cad/cadpreferences.h) SET(FORMS ${FORMS} cad/cadpreferences.ui) SET(SOURCES ${SOURCES} cad/cadview.cpp cad/cadpreferences.cpp) ENDIF() IF(WITH_QT6) SET(DESIRED_QT_VERSION "6") QT6_WRAP_UI(UI_HEADERS ${FORMS}) QT6_ADD_RESOURCES(UI_RESOURCES ElmerGUI.qrc) ADD_DEFINITIONS(-DWITH_QT6) ELSEIF(WITH_QT5) SET(DESIRED_QT_VERSION "5") QT5_WRAP_UI(UI_HEADERS ${FORMS}) QT5_ADD_RESOURCES(UI_RESOURCES ElmerGUI.qrc) ADD_DEFINITIONS(-DWITH_QT5) ELSE() SET(DESIRED_QT_VERSION "4") QT4_WRAP_UI(UI_HEADERS ${FORMS}) QT4_ADD_RESOURCES(UI_RESOURCES ElmerGUI.qrc) INCLUDE(${QT_USE_FILE}) ENDIF() ADD_DEFINITIONS(${QT_DEFINITIONS}) IF(MINGW AND WIN32) SET(CMAKE_RC_COMPILER_INIT windres) ENABLE_LANGUAGE(RC) SET(CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") SET(SOURCES ${SOURCES} ElmerGUI.rc) ENDIF() ADD_EXECUTABLE(ElmerGUI WIN32 ${SOURCES} ${UI_HEADERS} ${UI_RESOURCES}) SET(CPACK_PACKAGE_EXECUTABLES ElmerGUI "ElmerGUI") IF(WITH_QT6) TARGET_LINK_LIBRARIES(ElmerGUI Qt6::OpenGLWidgets Qt6::Qml Qt6::Xml Qt6::Gui Qt6::Core Qt6::Svg Qt6::Widgets Qt6::PrintSupport Qt6::OpenGLWidgets) ELSEIF(WITH_QT5) QT5_USE_MODULES(ElmerGUI OpenGL Xml Script Gui Core Svg Widgets PrintSupport) ENDIF() TARGET_LINK_LIBRARIES(ElmerGUI ng ${QT_LIBRARIES}) IF(NOT(WIN32) AND NOT(APPLE)) TARGET_LINK_LIBRARIES(ElmerGUI GL GLU) ENDIF() IF(APPLE) SET_TARGET_PROPERTIES(ElmerGUI PROPERTIES COMPILE_FLAGS "-framework OpenGL -framework GLU") SET_TARGET_PROPERTIES(ElmerGUI PROPERTIES LINK_FLAGS "-Wl,-framework,OpenGL") ENDIF() IF(WIN32) TARGET_LINK_LIBRARIES(ElmerGUI opengl32 glu32 psapi) ADD_DEFINITIONS(-DPSAPI_VERSION=1) ENDIF(WIN32) IF(WITH_MATC) TARGET_LINK_LIBRARIES(ElmerGUI matc) ENDIF() IF(WITH_QWT) INCLUDE_DIRECTORIES(${QWT_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(ElmerGUI ${QWT_LIBRARY}) ENDIF() IF(WITH_VTK) TARGET_LINK_LIBRARIES(ElmerGUI ${VTK_LIBRARIES}) IF(VTK_MAJOR_VERSION VERSION_LESS 6) TARGET_LINK_LIBRARIES(ElmerGUI QVTK) ENDIF() IF(ELMER_INSTANTIATE_VTK_ARRAY_TEMPLATE) TARGET_COMPILE_DEFINITIONS(ElmerGUI PRIVATE ELMER_INSTANTIATE_VTK_ARRAY_TEMPLATE) ENDIF() ENDIF() IF(WITH_OCC) TARGET_LINK_LIBRARIES(ElmerGUI ${ELMER_OCC_LIBS}) INCLUDE_DIRECTORIES(${OpenCASCADE_INCLUDE_DIR}) IF(UNIX) ADD_DEFINITIONS(-DHAVE_CONFIG_H -DHAVE_IOSTREAM -DHAVE_FSTREAM -DHAVE_LIMITS_H) ELSEIF(WIN32) ADD_DEFINITIONS(-DWNT -DCSFDB) ENDIF() ENDIF() IF(WITH_PYTHONQT) MESSAGE(WARNING "PythonQT is not tested.") INCLUDE_DIRECTORIES(${PYTHONQT_INCLUDE_DIR} ${PYTHON_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(ElmerGUI PythonQt) ENDIF() IF(NOT(WIN32) AND ELMERSOLVER_RPATH_STRING) SET_TARGET_PROPERTIES(ElmerGUI PROPERTIES INSTALL_RPATH "${ELMERSOLVER_RPATH_STRING}") ENDIF() INSTALL(TARGETS ElmerGUI RUNTIME DESTINATION "bin" COMPONENT "elmergui") INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/edf DESTINATION "share/ElmerGUI" COMPONENT "elmergui") INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/edf-extra DESTINATION "share/ElmerGUI" COMPONENT "elmergui") INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/icons/TangoElmerGUI DESTINATION "share/ElmerGUI/icons" COMPONENT "elmergui")