set( proj sqlite ) # Set dependency list set(${proj}_DEPENDENCIES "") # Include dependent projects if any ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj DEPENDS_VAR ${proj}_DEPENDENCIES) if(Slicer_USE_SYSTEM_${proj}) unset(${proj}_DIR CACHE) unset(${proj} CACHE) find_package(${proj} REQUIRED) endif() # Sanity checks if(DEFINED ${proj}_DIR AND NOT EXISTS ${${proj}_DIR}) message(FATAL_ERROR "${proj}_DIR variable is defined but corresponds to nonexistent directory") endif() if(NOT DEFINED ${proj}_DIR AND NOT Slicer_USE_SYSTEM_${proj}) ExternalProject_SetIfNotDefined( Slicer_${proj}_GIT_REPOSITORY "${EP_GIT_PROTOCOL}://github.com/azadkuh/sqlite-amalgamation.git" QUIET ) ExternalProject_SetIfNotDefined( Slicer_${proj}_GIT_TAG "3.30.1" QUIET ) set(EP_SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}) set(EP_BINARY_DIR ${CMAKE_BINARY_DIR}/${proj}-build) set(EP_INSTALL_DIR ${CMAKE_BINARY_DIR}/${proj}-install) set(EP_INSTALL_LIBDIR "lib") set(${proj}_CMAKE_C_FLAGS ${ep_common_c_flags}) if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64-bit set(${proj}_CMAKE_C_FLAGS "${ep_common_c_flags} -fPIC") endif() ExternalProject_Add(${proj} ${${proj}_EP_ARGS} GIT_REPOSITORY "${Slicer_${proj}_GIT_REPOSITORY}" GIT_TAG "${Slicer_${proj}_GIT_TAG}" SOURCE_DIR ${EP_SOURCE_DIR} BINARY_DIR ${EP_BINARY_DIR} INSTALL_DIR ${EP_INSTALL_DIR} CMAKE_CACHE_ARGS -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags} -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER} -DCMAKE_C_FLAGS:STRING=${${proj}_CMAKE_C_FLAGS} -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD} -DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED} -DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS} -DCMAKE_INSTALL_LIBDIR:PATH=${EP_INSTALL_LIBDIR} -DSQLITE_BUILD_DOC:BOOL=OFF -DSQLITE_BUILD_EXAMPLES:BOOL=OFF -DSQLITE_BUILD_TESTS:BOOL=OFF # recommended options would define SQLITE_OMIT_DEPRECATED and SQLITE_OMIT_DECLTYPE, # which would cause build errors in Python, so go with deafult options instead -DBUILD_RECOMMENDED_OPTS:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=${EP_INSTALL_DIR} DEPENDS ${${proj}_DEPENDENCIES} ) ExternalProject_GenerateProjectDescription_Step(${proj}) set(${proj}_DIR ${EP_BINARY_DIR}) set(${proj}_INCLUDE_DIR ${EP_INSTALL_DIR}/include/sqlite3) if(WIN32) set(${proj}_LIBRARY ${EP_INSTALL_DIR}/lib/sqlite3.lib) else() set(${proj}_LIBRARY ${EP_INSTALL_DIR}/lib/libsqlite3.a) endif() else() ExternalProject_Add_Empty(${proj} DEPENDS ${${proj}_DEPENDENCIES}) endif() mark_as_superbuild( VARS ${proj}_DIR:PATH ${proj}_LIBRARY:PATH ${proj}_INCLUDE_DIR:PATH LABELS "FIND_PACKAGE" )