Computer Assited Medical Intervention Tool Kit  version 3.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
CamiTKSubProjectAdd.h
Go to the documentation of this file.
18  parse_arguments(ADD_SUB_PROJECT
19  "ACTIONCOMPONENTCEP_LIBRARYAPPLICATIONCORELIBDEPENDENCIES" # possible lists
20  "" #possible options
21  ${ARGN}
22  )
23 
24  # check types
25  # CORE LIBRARIES
26  if(ADD_SUB_PROJECT_CORELIB)
27  set(SUB_PROJECT_NAME ${ADD_SUB_PROJECT_CORELIB})
28  # Add the xml node for this current subproject
29  set(xml_subproject_corelibraries ${xml_subproject_corelibraries} "\n <SubProject name=\"${SUB_PROJECT_NAME}\">" CACHE INTERNAL "")
30  foreach(DEPENDENCY ${ADD_SUB_PROJECT_DEPENDENCIES})
31  set(xml_subproject_corelibraries ${xml_subproject_corelibraries} "\n <Dependency name=\"${DEPENDENCY}\"/>" CACHE INTERNAL "")
32  endforeach()
33  set(xml_subproject_corelibraries ${xml_subproject_corelibraries} " </SubProject>" CACHE INTERNAL "")
34  endif()
35 
36  # LIBRARY
37  if(ADD_SUB_PROJECT_CEP_LIBRARY)
38  set(SUB_PROJECT_NAME ${ADD_SUB_PROJECT_CEP_LIBRARY})
39  # Add the xml node for this current subproject
40  set(xml_subproject_libraries ${xml_subproject_libraries} "\n <SubProject name=\"${SUB_PROJECT_NAME}\">" CACHE INTERNAL "")
41  foreach(DEPENDENCY ${ADD_SUB_PROJECT_DEPENDENCIES})
42  set(xml_subproject_libraries ${xml_subproject_libraries} "\n <Dependency name=\"${DEPENDENCY}\"/>" CACHE INTERNAL "")
43  endforeach()
44  set(xml_subproject_libraries ${xml_subproject_libraries} " </SubProject>" CACHE INTERNAL "")
45  set(CAMITK_CEP_LIBRARY_TARGETS ${CAMITK_CEP_LIBRARY_TARGETS} ${SUB_PROJECT_NAME} CACHE STRING "List of CamiTK CEP library targets" FORCE)
46  endif()
47 
48  # COMPONENTS
49  if(ADD_SUB_PROJECT_COMPONENT)
50  set(SUB_PROJECT_NAME ${ADD_SUB_PROJECT_COMPONENT})
51  # Add the xml node for this current subproject
52  set(xml_subproject_components ${xml_subproject_components} "\n <SubProject name=\"${SUB_PROJECT_NAME}\">" CACHE INTERNAL "")
53  foreach(DEPENDENCY ${ADD_SUB_PROJECT_DEPENDENCIES})
54  set(xml_subproject_components ${xml_subproject_components} "\n <Dependency name=\"${DEPENDENCY}\"/>" CACHE INTERNAL "")
55  endforeach()
56  set(xml_subproject_components ${xml_subproject_components} " </SubProject>" CACHE INTERNAL "")
57  set(CAMITK_COMPONENT_TARGETS ${CAMITK_COMPONENT_TARGETS} ${SUB_PROJECT_NAME} CACHE STRING "List of CamiTK component targets" FORCE)
58  endif()
59 
60  # ACTIONS
61  if(ADD_SUB_PROJECT_ACTION)
62  set(SUB_PROJECT_NAME ${ADD_SUB_PROJECT_ACTION})
63  if(SUB_PROJECT_NAME STREQUAL "action-application")
64  # Particular case of action-applications
65  set(xml_subproject_action_application "\n <SubProject name=\"${SUB_PROJECT_NAME}\">" CACHE INTERNAL "")
66  set(xml_subproject_action_application ${xml_subproject_action_application} "\n <Dependency name=\"library-camitkcore\"/>" CACHE INTERNAL "")
67  set(xml_subproject_action_application ${xml_subproject_action_application} " </SubProject>" CACHE INTERNAL "")
68  else()
69  # Add the xml node for this current subproject
70  set(xml_subproject_actions ${xml_subproject_actions} "\n <SubProject name=\"${SUB_PROJECT_NAME}\">" CACHE INTERNAL "")
71  foreach(DEPENDENCY ${ADD_SUB_PROJECT_DEPENDENCIES})
72  set(xml_subproject_actions ${xml_subproject_actions} "\n <Dependency name=\"${DEPENDENCY}\"/>" CACHE INTERNAL "")
73  endforeach()
74  set(xml_subproject_actions ${xml_subproject_actions} " </SubProject>" CACHE INTERNAL "")
75  endif()
76  set(CAMITK_ACTION_TARGETS ${CAMITK_ACTION_TARGETS} ${SUB_PROJECT_NAME} CACHE STRING "List of CamiTK action targets" FORCE)
77  endif()
78 
79  # APPLICATION
80  if(ADD_SUB_PROJECT_APPLICATION)
81  set(SUB_PROJECT_NAME ${ADD_SUB_PROJECT_APPLICATION})
82  # Add the xml node for this current subproject
83  set(xml_subproject_applications ${xml_subproject_applications} "\n <SubProject name=\"${SUB_PROJECT_NAME}\">" CACHE INTERNAL "")
84  foreach(DEPENDENCY ${ADD_SUB_PROJECT_DEPENDENCIES})
85  set(xml_subproject_applications ${xml_subproject_applications} "\n <Dependency name=\"${DEPENDENCY}\"/>" CACHE INTERNAL "")
86  endforeach()
87  set(xml_subproject_applications ${xml_subproject_applications} " </SubProject>" CACHE INTERNAL "")
88  set(CAMITK_APPLICATION_TARGETS ${CAMITK_APPLICATION_TARGETS} ${SUB_PROJECT_NAME} CACHE STRING "List of CamiTK applications targets" FORCE)
89  endif()
90 
91  # CDash subprojects listing
92  set(CAMITK_SUBPROJECTS ${CAMITK_SUBPROJECTS} ${SUB_PROJECT_NAME} CACHE INTERNAL "")
93 
94 end(){)
parse_arguments()
macro parse_arguments is a fork from CMakeMacroParseArguments see http://www.cmake.org/Wiki/CMakeMacroParseArguments for more information
Definition: ParseArguments.h:13
set(CAMITK_TEST_COMMAND_FILE ${CAMITK_TEST_OUTPUT_DIR}/command) set(CAMITK_TEST_COMMAND_RESULT_FILE $
This CMake file run a command and put the output in a given file.
Definition: CamiTKTestPassFile.h:11
camitk_sub_project_add()
macro camitk_sub_project_add adds a subproject definition from targets and its dependencies (if any) ...
Definition: CamiTKSubProjectAdd.h:17