download, build, and link missing png and zlib libraries with CMake
This commit is contained in:
@ -446,14 +446,43 @@ endif()
|
||||
|
||||
find_package(PNG QUIET)
|
||||
find_package(ZLIB QUIET)
|
||||
if((NOT ZLIB_FOUND) AND (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16))
|
||||
set(LIBZ_URL http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz)
|
||||
set(LIBZ_MD5 1c9f62f0778697a09d36121ead88e08e)
|
||||
mark_as_advanced(LIBZ_URL)
|
||||
mark_as_advanced(LIBZ_MD5)
|
||||
include(ExternalCMakeProject)
|
||||
ExternalCmakeProject(libz ${LIBZ_URL} ${LIBZ_MD5} zlib . CMakeLists.zlib)
|
||||
add_library(ZLIB::ZLIB ALIAS zlibstatic)
|
||||
target_include_directories(lammps PRIVATE "${CMAKE_BINARY_DIR}/_deps/libz-src")
|
||||
target_include_directories(lammps PRIVATE "${CMAKE_BINARY_DIR}/_deps/libz-build")
|
||||
set(ZLIB_FOUND TRUE)
|
||||
set(ZLIB_INCLUDE_DIR "${CMAKE_BINARY_DIR}/_deps/libz-src;${CMAKE_BINARY_DIR}/_deps/libz-build")
|
||||
endif()
|
||||
if((NOT PNG_FOUND) AND (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16))
|
||||
set(LIBPNG_URL http://prdownloads.sourceforge.net/libpng/libpng-1.6.37.tar.gz)
|
||||
set(LIBPNG_MD5 6c7519f6c75939efa0ed3053197abd54)
|
||||
mark_as_advanced(LIBPNG_URL)
|
||||
mark_as_advanced(LIBPNG_MD5)
|
||||
include(ExternalCMakeProject)
|
||||
ExternalCmakeProject(libpng ${LIBPNG_URL} ${LIBPNG_MD5} libpng . CMakeLists.png)
|
||||
add_library(PNG::PNG ALIAS png_static)
|
||||
target_include_directories(lammps PRIVATE "${CMAKE_BINARY_DIR}/_deps/libpng-src")
|
||||
target_include_directories(lammps PRIVATE "${CMAKE_BINARY_DIR}/_deps/libpng-build")
|
||||
set(PNG_FOUND TRUE)
|
||||
endif()
|
||||
if(PNG_FOUND AND ZLIB_FOUND)
|
||||
option(WITH_PNG "Enable PNG support" ON)
|
||||
else()
|
||||
option(WITH_PNG "Enable PNG support" OFF)
|
||||
endif()
|
||||
if(WITH_PNG)
|
||||
find_package(PNG REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
if(NOT PNG_FOUND)
|
||||
find_package(PNG REQUIRED)
|
||||
endif()
|
||||
if(NOT ZLIB_FOUND)
|
||||
find_package(ZLIB REQUIRED)
|
||||
endif()
|
||||
target_link_libraries(lammps PRIVATE PNG::PNG ZLIB::ZLIB)
|
||||
target_compile_definitions(lammps PRIVATE -DLAMMPS_PNG)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user