Skip to content

Commit

Permalink
Renamed macros and made them usable for external projects.
Browse files Browse the repository at this point in the history
The ctkMacroGetAll[Non]CTKTargetLibraries can be useful for external
projects using CTK. They can be "customized" from the outside by
providing a macro called GetMyTargetLibraries.
  • Loading branch information
saschazelzer committed May 16, 2011
1 parent 61218c0 commit 1adf96a
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 28 deletions.
2 changes: 1 addition & 1 deletion CMake/ctkFunctionGenerateDGraphInput.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ FUNCTION(ctkFunctionGenerateDGraphInput dir target_directories)
SET(ctk_dependencies ${dependencies})
ELSE()
# filter dependencies starting with CTK org org_commontk_
ctkMacroGetAllCTKTargetLibraries("${dependencies}" ctk_dependencies)
ctkMacroGetAllProjectTargetLibraries("${dependencies}" ctk_dependencies)
ENDIF()

IF(ctk_dependencies)
Expand Down
2 changes: 1 addition & 1 deletion CMake/ctkFunctionGenerateProjectXml.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ FUNCTION(ctkFunctionGenerateProjectXml dir name target_directories is_superbuild
SET(ctk_dependencies)

# filter dependencies starting with CTK
ctkMacroGetAllCTKTargetLibraries("${dependencies}" ctk_dependencies)
ctkMacroGetAllProjectTargetLibraries("${dependencies}" ctk_dependencies)

IF(${is_superbuild})
SET(xml_subprojects ${xml_subprojects} " <Dependency name=\"SuperBuild\"/>\n")
Expand Down
4 changes: 2 additions & 2 deletions CMake/ctkFunctionGetIncludeDirs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ FUNCTION(ctkFunctionGetIncludeDirs var_include_dirs)
SET(ctk_deps )
SET(ext_deps )

ctkMacroGetAllCTKTargetLibraries("${${_target}_DEPENDENCIES}" ctk_deps)
ctkMacroGetAllNonCTKTargetLibraries("${${_target}_DEPENDENCIES}" ext_deps)
ctkMacroGetAllProjectTargetLibraries("${${_target}_DEPENDENCIES}" ctk_deps)
ctkMacroGetAllNonProjectTargetLibraries("${${_target}_DEPENDENCIES}" ext_deps)

FOREACH(dep ${ctk_deps})
LIST(APPEND _include_dirs
Expand Down
2 changes: 1 addition & 1 deletion CMake/ctkFunctionGetLibraryDirs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ FUNCTION(ctkFunctionGetLibraryDirs var_library_dirs)

SET(ext_deps )

ctkMacroGetAllNonCTKTargetLibraries("${${_target}_DEPENDENCIES}" ext_deps)
ctkMacroGetAllNonProjectTargetLibraries("${${_target}_DEPENDENCIES}" ext_deps)

FOREACH(dep ${ext_deps})

Expand Down
37 changes: 21 additions & 16 deletions CMake/ctkMacroTargetLibraries.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -195,27 +195,32 @@ MACRO(ctkMacroCollectAllTargetLibraries targets subdir varname)
ENDMACRO()

#
# Extract all library names starting with CTK uppercase or org_commontk_
#
MACRO(ctkMacroGetAllCTKTargetLibraries all_target_libraries varname)
SET(re_ctklib "^(c|C)(t|T)(k|K)[a-zA-Z0-9]+$")
SET(re_ctkplugin "^org_commontk_[a-zA-Z0-9_]+$")
SET(_tmp_list)
LIST(APPEND _tmp_list ${all_target_libraries})
#MESSAGE("calling ctkMacroListFilter with varname:${varname}")
ctkMacroListFilter(_tmp_list re_ctklib re_ctkplugin OUTPUT_VARIABLE ${varname})
#MESSAGE(STATUS "getallctklibs from ${all_target_libraries}")
#MESSAGE(STATUS varname:${varname}:${${varname}})
# Extract all library names which are build within this project
#
MACRO(ctkMacroGetAllProjectTargetLibraries all_target_libraries varname)
# Allow external projects to override the set of internal targets
IF(COMMAND GetMyTargetLibraries)
GetMyTargetLibraries("${all_target_libraries}" ${varname})
ELSE()
SET(re_ctklib "^(c|C)(t|T)(k|K)[a-zA-Z0-9]+$")
SET(re_ctkplugin "^org_commontk_[a-zA-Z0-9_]+$")
SET(_tmp_list)
LIST(APPEND _tmp_list ${all_target_libraries})
#MESSAGE("calling ctkMacroListFilter with varname:${varname}")
ctkMacroListFilter(_tmp_list re_ctklib re_ctkplugin OUTPUT_VARIABLE ${varname})
#MESSAGE(STATUS "getallctklibs from ${all_target_libraries}")
#MESSAGE(STATUS varname:${varname}:${${varname}})
ENDIF()
ENDMACRO()

#
# Extract all library names *NOT* starting with CTK uppercase or org_commontk_
# Extract all library names *NOT* being build within this project
#
MACRO(ctkMacroGetAllNonCTKTargetLibraries all_target_libraries varname)
ctkMacroGetAllCTKTargetLibraries("${all_target_libraries}" all_ctk_libraries)
MACRO(ctkMacroGetAllNonProjectTargetLibraries all_target_libraries varname)
ctkMacroGetAllProjectTargetLibraries("${all_target_libraries}" all_project_libraries)
SET(_tmp_list ${all_target_libraries})
IF(all_ctk_libraries)
LIST(REMOVE_ITEM _tmp_list ${all_ctk_libraries})
IF(all_project_libraries)
LIST(REMOVE_ITEM _tmp_list ${all_project_libraries})
ENDIF()
SET(${varname} ${_tmp_list})
#MESSAGE(STATUS varname:${varname}:${${varname}})
Expand Down
7 changes: 1 addition & 6 deletions CMake/ctkMacroValidateBuildOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -157,12 +157,7 @@ MACRO(ctkMacroValidateBuildOptions dir executable target_directories)
# Check if all internal CTK targets included in the dependency path are enabled
SET(int_dep_path_list )
SET(ext_dep_path_list ${dep_path_list})
# Allow external projects to override the set of internal targets
IF(COMMAND GetMyTargetLibraries)
GetMyTargetLibraries("${dep_path_list}" int_dep_path_list)
ELSE()
ctkMacroGetAllCTKTargetLibraries("${dep_path_list}" int_dep_path_list)
ENDIF()
ctkMacroGetAllProjectTargetLibraries("${dep_path_list}" int_dep_path_list)
IF(int_dep_path_list)
LIST(REMOVE_ITEM ext_dep_path_list ${int_dep_path_list})
ENDIF()
Expand Down
2 changes: 1 addition & 1 deletion SuperBuild.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ ctkMacroCollectAllTargetLibraries("${CTK_APPLICATIONS_SUBDIRS}" "Applications" A
# Using the variable ALL_TARGET_LIBRARIES initialized above with the help
# of the macro ctkMacroCollectAllTargetLibraries, let's get the list of all Non-CTK dependencies.
# NON_CTK_DEPENDENCIES is expected by the macro ctkMacroShouldAddExternalProject
ctkMacroGetAllNonCTKTargetLibraries("${ALL_TARGET_LIBRARIES}" NON_CTK_DEPENDENCIES)
ctkMacroGetAllNonProjectTargetLibraries("${ALL_TARGET_LIBRARIES}" NON_CTK_DEPENDENCIES)
#MESSAGE(STATUS NON_CTK_DEPENDENCIES:${NON_CTK_DEPENDENCIES})

#-----------------------------------------------------------------------------
Expand Down

0 comments on commit 1adf96a

Please sign in to comment.