1 # ==============================================================================     2 # Medical Image Registration ToolKit (MIRTK)     4 # Copyright 2013-2016 Imperial College London     5 # Copyright 2013-2016 Andreas Schuh     7 # Licensed under the Apache License, Version 2.0 (the "License");     8 # you may not use this file except in compliance with the License.     9 # You may obtain a copy of the License at    11 #     http://www.apache.org/licenses/LICENSE-2.0    13 # Unless required by applicable law or agreed to in writing, software    14 # distributed under the License is distributed on an "AS IS" BASIS,    15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    16 # See the License for the specific language governing permissions and    17 # limitations under the License.    18 # ==============================================================================    20 ##############################################################################    22 # @brief Find additional dependencies.    24 # This file is included by basis_project_impl() after it included the    25 # BasisProject.cmake file of the project and collected information about its    26 # modules. Furthermore, it is included before it looks for the packages    27 # specified as arguments to the basis_project() command. At this point, the    28 # CMake project is not initialized yet and most BASIS variables are not set.    30 # Use this file to find additional dependencies or dependencies which are    31 # only required by a project if certain modules are enabled.    33 # Use case: If this project has a module which is a Slicer Extension    34 # and the project itself shall be build as Slicer Extension only if the    35 # module is enabled, the Slicer package configuration file has to be    36 # included here such that the Slicer settings are imported before any    37 # module is configured. This is done by using the command    39 # Another use case would be that you want to specify advanced options to    40 # the basis_find_package() function which you cannot specify as part of    41 # the dependencies arguments of the basis_project() function.    45 # if (SlicerExtension_ENABLED)    46 #   # requires Slicer if the SlicerExtension module is enabled    47 #   basis_find_package (Slicer REQUIRED)    48 #   basis_use_package (Slicer)    52 # @ingroup BasisSettings    53 ##############################################################################    55 # Directory with source files of third-party libraries    56 set(MIRTK_THIRDPARTY_DIR 
"${MIRTK_SOURCE_DIR}/ThirdParty")
    59 # ------------------------------------------------------------------------------
    61 set(LBFGS_SOURCE_DIR 
"${MIRTK_THIRDPARTY_DIR}/LBFGS")
    63 # Set 
default for WITH_LibLBFGS option
    64 if (NOT DEFINED WITH_LBFGS_DEFAULT AND EXISTS 
"${LBFGS_SOURCE_DIR}/CMakeLists.txt")
    65   set(WITH_LBFGS_DEFAULT ON)
    68 # When third-party submodule is available and library is needed    69 if ((DEFINED WITH_LBFGS AND WITH_LBFGS) OR (NOT DEFINED WITH_LBFGS AND WITH_LBFGS_DEFAULT))
    70   basis_check_if_package_is_needed_by_modules(is_needed LBFGS)
    71   if (is_needed AND EXISTS 
"${LBFGS_SOURCE_DIR}/CMakeLists.txt")
    72     message(STATUS 
"Configuring module ThirdParty/LBFGS...")
    73     set(LBFGS_INSTALL_HEADERS     FALSE)
    74     set(LBFGS_INSTALL_STATIC_LIBS TRUE) 
# needed because of CMake install(EXPORT)    75     set(LBFGS_INSTALL_LIBRARY_DIR ${INSTALL_LIBRARY_DIR})
    76     set(LBFGS_lib_TARGET_NAME     LibLBFGS)
    77     basis_add_export_target(export_args ${LBFGS_lib_TARGET_NAME} FALSE ${LBFGS_INSTALL_STATIC_LIBS})
    79       list(GET export_args 1 LBFGS_EXPORT_NAME)
    81       set(LBFGS_EXPORT_NAME)
    83     add_subdirectory("${LBFGS_SOURCE_DIR}
" "${MIRTK_BINARY_DIR}/ThirdParty/LBFGS
")    84     set_target_properties(${LBFGS_lib_TARGET_NAME} PROPERTIES OUTPUT_NAME MIRTKlbfgs)    86     set(LBFGS_LIBRARIES   ${LBFGS_lib_TARGET_NAME})    87     set(LBFGS_INCLUDE_DIR "${LBFGS_SOURCE_DIR}/include
")    88     set(LBFGS_DIR         "${MIRTK_BINARY_DIR}/ThirdParty/LBFGS
")    89     message(STATUS "Configuring module ThirdParty/LBFGS... - done
")