v0.15.0
Loading...
Searching...
No Matches
ModulesList.cmake
Go to the documentation of this file.
1# If the basic UMs are already loaded target to um library. Otherwise, build a
2# basic user modules library.
3if(EXTERNAL_MODULE_SOURCE_DIRS)
4
5 find_package(
6 MoFEM REQUIRED HINTS ${MOFEM_DIR} ${PROJECT_BINARY_DIR} $ENV{MOFEM_DIR})
7
8 # Find modules in an external directory. If file InstalledAddModule.cmake if
9 # found in the directory, it is recognized that director is module and name of
10 # directory become module name.
11 foreach(LOOP_DIR ${EXTERNAL_MODULE_SOURCE_DIRS})
12 message(STATUS "Search module directory: " ${LOOP_DIR})
13 file(
14 GLOB_RECURSE EXTERNAL_INSTLLED_MODULES
15 FOLLOW_SYMLINKS
16 ${LOOP_DIR}/*InstalledAddModule.cmake)
17 message(STATUS "Found: " ${EXTERNAL_INSTLLED_MODULES})
18 set(INSTALLED_MODULES ${INSTALLED_MODULES} ${EXTERNAL_INSTLLED_MODULES})
19 endforeach(LOOP_DIR)
20
21else(EXTERNAL_MODULE_SOURCE_DIRS)
22
23 # Find modules in a users modules source directory. If file
24 # InstalledAddModule.cmake is found in the directory, it is recognized that
25 # directory is module and name of directory become module name.
26 file(
27 GLOB_RECURSE INSTALLED_MODULES
28 FOLLOW_SYMLINKS
29 ${PROJECT_SOURCE_DIR}/users_modules/?*/InstalledAddModule.cmake)
30
31endif(EXTERNAL_MODULE_SOURCE_DIRS)
32
33# Install modules && git pull for all users modules
34add_custom_target(
35 update_users_modules
36 COMMENT "Update all modules ..." VERBATIM)
37add_custom_target(
38 checkout_develop
39 COMMENT "Checkout develop branch ..." VERBATIM)
40add_custom_target(
41 checkout_master
42 COMMENT "Checkout master branch ..." VERBATIM)
43
44# Recognize that module is installed
45foreach(LOOP_MODULE ${INSTALLED_MODULES})
46 string(REGEX REPLACE
47 "/+InstalledAddModule.cmake" ""
48 MODULE_DIRECTORY ${LOOP_MODULE})
49 string(REGEX REPLACE
50 ".*/+" ""
51 MODULE_NAME ${MODULE_DIRECTORY})
52 string(REGEX REPLACE "-" "_" MODULE_NAME ${MODULE_NAME})
53 string(TOUPPER ${MODULE_NAME} MODULE_NAME)
54 message(STATUS "Add definitions to the compiler command -DWITH_MODULE_${MODULE_NAME}")
55 add_definitions(-DWITH_MODULE_${MODULE_NAME})
56endforeach(LOOP_MODULE)
57
58# Add custom tags for all modules
59foreach(LOOP_MODULE ${INSTALLED_MODULES})
60 # message(STATUS "${LOOP_MODULE}")
61 string(REGEX REPLACE
62 "/+InstalledAddModule.cmake" ""
63 MODULE_DIRECTORY ${LOOP_MODULE})
64 message(STATUS "Add module ... ${MODULE_DIRECTORY}")
65 string(REGEX REPLACE
66 ".*/+" ""
67 MODULE_NAME ${MODULE_DIRECTORY}
68 )
69 if(
70 NOT ${MODULE_NAME} MATCHES "basic_finite_elements")
71 #message(STATUS "Add custom targets for ${MODULE_NAME}")
72 add_custom_target(
73 update_${MODULE_NAME}
74 COMMAND ${GIT_EXECUTABLE} pull
75 WORKING_DIRECTORY ${MODULE_DIRECTORY}
76 COMMENT "Update module ... ${MODULE_NAME}" VERBATIM)
77 add_dependencies(update_users_modules update_${MODULE_NAME})
78 add_custom_target(
79 checkout_develop_${MODULE_NAME}
80 COMMAND ${GIT_EXECUTABLE} checkout develop
81 WORKING_DIRECTORY ${MODULE_DIRECTORY}
82 COMMENT "Checkout develop baranch for module ${MODULE_NAME}" VERBATIM)
83 add_dependencies(checkout_develop checkout_develop_${MODULE_NAME})
84 add_custom_target(
85 checkout_master_${MODULE_NAME}
86 COMMAND ${GIT_EXECUTABLE} checkout master
87 WORKING_DIRECTORY ${MODULE_DIRECTORY}
88 COMMENT "Checkout master baranch for module ${MODULE_NAME}" VERBATIM)
89 add_dependencies(checkout_master checkout_master_${MODULE_NAME})
90 endif(
91 NOT ${MODULE_NAME} MATCHES "basic_finite_elements")
92 # include module
93 include(${LOOP_MODULE})
94endforeach(LOOP_MODULE)