Files
source/ext/VFS/CMakeLists.txt
Marco Antonio Jaguaribe Costaandmajcosta eca4086d30 inherit minimum cmake version from ja2
all this does is silence the warning that cmake 2.6 is deprecated, we're
never building bfVFS standalone anyway
2023-10-07 09:21:11 -03:00

128 lines
3.0 KiB
CMake

project(bfVFS)
set(BFVFS_VERSION_MAJOR 1)
set(BFVFS_VERSION_MINOR 0)
set(BFVFS_VERSION_PATCH 0)
##
## determine input/output directories
##
if(BFVFS_INTEGRATED_SOURCE_DIR)
set(BFVFS_SOURCE_DIR ${BFVFS_INTEGRATED_SOURCE_DIR})
else()
set(BFVFS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
endif()
if(BFVFS_INTEGRATED_OUTPUT_DIR)
set(BFVFS_OUTPUT_DIR ${BFVFS_INTEGRATED_OUTPUT_DIR})
else()
set(BFVFS_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
endif()
if(BFVFS_INTEGRATED_LIBRARY_DIR)
set(BFVFS_LIBRARY_DIR ${BFVFS_INTEGRATED_LIBRARY_DIR})
else()
set(BFVFS_LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/lib)
endif()
if(BFVFS_INTEGRATED_RUNTIME_DIR)
set(BFVFS_RUNTIME_DIR ${BFVFS_INTEGRATED_RUNTIME_DIR})
else()
set(BFVFS_RUNTIME_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin)
endif()
set(BFVFS_INCLUDE_DIR ${BFVFS_SOURCE_DIR}/include)
##
## set bfVFS "output" variables
##
set(BFVFS_INCLUDE_DIRS ${BFVFS_INCLUDE_DIR})
set(BFVFS_LIBRARY_DIRS ${BFVFS_LIBRARY_DIR})
set(BFVFS_RUNTIME_DIRS ${BFVFS_RUNTIME_DIR})
##
## Options
##
option(BUILD_BFVFS_SHARED "Build shared libraries" OFF)
option(BFVFS_WITH_SLF "Enable SLF support" ON)
option(BFVFS_WITH_7ZIP "Enable 7-zip support" ON)
if(BFVFS_WITH_7ZIP)
set(BFVFS_7ZIP_DIR ${BFVFS_SOURCE_DIR}/ext/7z)
if(BUILD_BFVFS_SHARED)
set(BUILD_BFVFS_7ZIP_SHARED ON)
endif()
endif()
##
## set include directories for projects
##
include_directories(${BFVFS_INCLUDE_DIRS}
${BFVFS_SOURCE_DIR}/ext/utfcpp/source
)
##
## Build 7zip (if selected)
##
if(BFVFS_WITH_7ZIP)
add_subdirectory(${BFVFS_7ZIP_DIR})
endif()
##
## Build bfVFS
##
add_subdirectory(src)
##
## set more "output" variables
##
set(BFVFS_LIBRARIES ${BFVFS_TARGET})
if(BFVFS_WITH_7ZIP)
set(BFVFS_LIBRARIES ${BFVFS_LIBRARIES} ${BFVFS_7ZIP_TARGET})
endif()
set(BFVFS_DEFINITIONS ${BFVFS_VFS_DEFINITIONS} ${BFVFS_7ZIP_DEFINITIONS})
##
## make bfVFS easier to use in other applications
##
configure_file(${BFVFS_SOURCE_DIR}/BFVFSConfig.cmake.in
${BFVFS_OUTPUT_DIR}/BFVFSConfig.cmake @ONLY IMMEDIATE)
configure_file(${BFVFS_SOURCE_DIR}/UseBFVFS.cmake.in
${BFVFS_OUTPUT_DIR}/UseBFVFS.cmake @ONLY IMMEDIATE)
##
## debug CMake
##
mark_as_advanced(BFVFS_DEBUG_CMAKE)
option(BFVFS_DEBUG_CMAKE OFF)
if(BFVFS_DEBUG_CMAKE)
message("OPTIONS :")
message(" BUILD_BFVFS_SHARED - " ${BUILD_BFVFS_SHARED})
message(" BFVFS_WITH_7ZIP - " ${BFVFS_WITH_7ZIP})
message(" BFVFS_WITH_SLF - " ${BFVFS_WITH_SLF})
message("BFVFS_DEFINITIONS :")
foreach(def ${BFVFS_DEFINITIONS})
message(" " ${def})
endforeach()
message("BFVFS_INCLUDE_DIRS :")
foreach(dir ${BFVFS_INCLUDE_DIRS})
message(" " ${dir})
endforeach()
message("BFVFS_LIBRARY_DIRS :")
foreach(dir ${BFVFS_LIBRARY_DIRS})
message(" " ${dir})
endforeach()
message("BFVFS_LIBRARIES :")
foreach(lib ${BFVFS_LIBRARIES})
message(" " ${lib})
endforeach()
endif()