# Make sure this file is included only once by creating globally unique varibles # based on the name of this included file. get_filename_component(CMAKE_CURRENT_LIST_FILENAME ${CMAKE_CURRENT_LIST_FILE} NAME_WE) if(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED) return() endif() set(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED 1) ## External_${extProjName}.cmake files can be recurisvely included, ## and cmake variables are global, so when including sub projects it ## is important make the extProjName and proj variables ## appear to stay constant in one of these files. ## Store global variables before overwriting (then restore at end of this file.) ProjectDependancyPush(CACHED_extProjName ${extProjName}) ProjectDependancyPush(CACHED_proj ${proj}) # Make sure that the ExtProjName/IntProjName variables are unique globally # even if other External_${ExtProjName}.cmake files are sourced by # SlicerMacroCheckExternalProjectDependency set(extProjName Cppcheck ) #The find_package known name set(proj Cppcheck ) #This local name set(${extProjName}_REQUIRED_VERSION "") #If a required version is necessary, then set this, else leave blank #if(${USE_SYSTEM_${extProjName}}) # unset(${extProjName}_DIR CACHE) #endif() # Sanity checks if(DEFINED ${extProjName}_DIR AND NOT EXISTS ${${extProjName}_DIR}) message(FATAL_ERROR "${extProjName}_DIR variable is defined but corresponds to non-existing directory (${${extProjName}_DIR})") endif() # Set dependency list set(${proj}_DEPENDENCIES "") # Include dependent projects if any SlicerMacroCheckExternalProjectDependency(${proj}) if(NOT ( DEFINED "${extProjName}_DIR" OR ( DEFINED "${USE_SYSTEM_${extProjName}}" AND NOT "${USE_SYSTEM_${extProjName}}" ) ) ) #message(STATUS "${__indent}Adding project ${proj}") # Set CMake OSX variable to pass down the external project set(CMAKE_OSX_EXTERNAL_PROJECT_ARGS) if(APPLE) list(APPEND CMAKE_OSX_EXTERNAL_PROJECT_ARGS -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}) endif() ### --- Project specific additions here ### --- End Project specific additions set(${proj}_REPOSITORY ${git_protocol}://github.com/danmar/cppcheck.git) set(${proj}_GIT_TAG origin/master) ExternalProject_Add(${proj} GIT_REPOSITORY ${${proj}_REPOSITORY} GIT_TAG ${${proj}_GIT_TAG} SOURCE_DIR ${proj} BUILD_IN_SOURCE 1 LOG_CONFIGURE 0 # Wrap configure in script to ignore log output from dashboards LOG_BUILD 0 # Wrap build in script to to ignore log output from dashboards LOG_TEST 0 # Wrap test in script to to ignore log output from dashboards LOG_INSTALL 0 # Wrap install in script to to ignore log output from dashboards ${cmakeversion_external_update} "${cmakeversion_external_update_value}" CONFIGURE_COMMAND "" BUILD_COMMAND HAVE_RULES=no CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ${CMAKE_MAKE_PROGRAM} INSTALL_COMMAND HAVE_RULES=no DESTDIR=${CMAKE_BINARY_DIR}/ PREFIX=Utils ${CMAKE_MAKE_PROGRAM} install DEPENDS ${${proj}_DEPENDENCIES} ) set(${extProjName}_EXE ${CMAKE_BINARY_DIR}/Utils/bin/cppcheck) else() if(${USE_SYSTEM_${extProjName}}) find_program(${proj}_EXE cppcheck DOC "Path of Cppcheck program") if(NOT ${proj}_EXE) message(FATAL_ERROR "To use the system ${extProjName}, set ${extProjName}_EXE") endif() message("USING the system ${extProjName}, set ${extProjName}_EXE=${${extProjName}_EXE}") endif() # The project is provided using ${extProjName}_EXE, nevertheless since other # project may depend on ${extProjName}, let's add an 'empty' one SlicerMacroEmptyExternalProject(${proj} "${${proj}_DEPENDENCIES}") endif() list(APPEND ${CMAKE_PROJECT_NAME}_SUPERBUILD_EP_VARS ${extProjName}_EXE:FILEPATH)