Page MenuHomePhabricator

cpack.patch

Authored By
zelzer
Apr 12 2012, 7:52 PM
Size
3 KB
Referenced Files
None
Subscribers
None

cpack.patch

diff --git a/CMakeLists.txt b/CMakeLists.txt
index feac085..b841516 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -730,9 +730,9 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/Applications/AppList.cmake")
# default CPack configuration. Otherwise that apps configuration
# will be used, if present.
-set( activated_apps_no 0 )
-set( use_project_cpack NOT ${MITK_BUILD_ALL_APPS} )
-set( use_default_config ON )
+set(activated_apps_no 0)
+set(use_default_config ON)
+list(LENGTH MITK_APPS app_count)
foreach(mitk_app ${MITK_APPS})
# extract option_name
@@ -741,12 +741,19 @@ foreach(mitk_app ${MITK_APPS})
list(GET target_info_list 1 option_name)
# check if the application is enabled
if(${option_name})
- MATH( EXPR activated_apps_no "${activated_apps_no} + 1" )
+ MATH(EXPR activated_apps_no "${activated_apps_no} + 1")
endif()
endforeach()
-if( NOT activated_apps_no EQUAL 1 )
- set( use_project_cpack OFF )
+if(app_count EQUAL 1 AND (activated_apps_no EQUAL 1 OR MITK_BUILD_ALL_APPS))
+ # Corner case if there is only one app in total
+ set(use_project_cpack ON)
+elseif(activated_apps_no EQUAL 1 AND NOT MITK_BUILD_ALL_APPS)
+ # Only one app is enabled (no "build all" flag set)
+ set(use_project_cpack ON)
+else()
+ # Less or more then one app is enabled
+ set(use_project_cpack OFF)
endif()
foreach(mitk_app ${MITK_APPS})
@@ -756,29 +763,30 @@ foreach(mitk_app ${MITK_APPS})
list(GET target_info_list 0 target_dir)
list(GET target_info_list 1 option_name)
# check if the application is enabled
- if( ${option_name} )
+ if(${option_name})
# check whether application specific configuration files will be used
- if ( use_project_cpack )
- # use files if they exist
- if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Applications/${target_dir}/CPackOptions.cmake" )
- include( "${CMAKE_CURRENT_SOURCE_DIR}/Applications/${target_dir}/CPackOptions.cmake" )
+ if(use_project_cpack)
+ # use files if they exist
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Applications/${target_dir}/CPackOptions.cmake")
+ include("${CMAKE_CURRENT_SOURCE_DIR}/Applications/${target_dir}/CPackOptions.cmake")
endif()
-
- if( EXISTS "${PROJECT_SOURCE_DIR}/Applications/${target_dir}/CPackConfig.cmake.in" )
- configure_file(${PROJECT_SOURCE_DIR}/Applications/${target_dir}/CPackConfig.cmake.in ${PROJECT_BINARY_DIR}/Applications/${target_dir}/CPackConfig.cmake @ONLY)
+
+ if(EXISTS "${PROJECT_SOURCE_DIR}/Applications/${target_dir}/CPackConfig.cmake.in")
set(CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIR}/Applications/${target_dir}/CPackConfig.cmake")
- set( use_default_config OFF )
+ configure_file(${PROJECT_SOURCE_DIR}/Applications/${target_dir}/CPackConfig.cmake.in
+ ${CPACK_PROJECT_CONFIG_FILE} @ONLY)
+ set(use_default_config OFF)
endif()
- endif()
- # add link to the list
- list(APPEND CPACK_CREATE_DESKTOP_LINKS "${target_dir}")
+ endif()
+ # add link to the list
+ list(APPEND CPACK_CREATE_DESKTOP_LINKS "${target_dir}")
endif()
endforeach()
# if no project specific configuration file was used, use default
-if( use_default_config )
+if(use_default_config)
configure_file(${MITK_SOURCE_DIR}/MITKCPackOptions.cmake.in
- ${MITK_BINARY_DIR}/MITKCPackOptions.cmake @ONLY)
+ ${MITK_BINARY_DIR}/MITKCPackOptions.cmake @ONLY)
set(CPACK_PROJECT_CONFIG_FILE "${MITK_BINARY_DIR}/MITKCPackOptions.cmake")
endif()

File Metadata

Mime Type
text/plain
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
792
Default Alt Text
cpack.patch (3 KB)

Event Timeline

Minor CPack related modfications to CMakeLists.txt