Commit 6d1be23a by Maarten L. Hekkelman

oops

parent 0472b9a4
...@@ -66,10 +66,7 @@ if(NOT(BUILD_FOR_CCP4 AND WIN32)) ...@@ -66,10 +66,7 @@ if(NOT(BUILD_FOR_CCP4 AND WIN32))
option(BUILD_SHARED_LIBS "Build a shared library instead of a static one" OFF) option(BUILD_SHARED_LIBS "Build a shared library instead of a static one" OFF)
endif() endif()
if(BUILD_FOR_CCP4) if(PROJECT_IS_TOP_LEVEL AND NOT BUILD_FOR_CCP4)
unset(CIFPP_DOWNLOAD_CCD)
unset(CIFPP_INSTALL_UPDATE_SCRIPT)
else()
# Lots of code depend on the availability of the components.cif file # Lots of code depend on the availability of the components.cif file
option(CIFPP_DOWNLOAD_CCD option(CIFPP_DOWNLOAD_CCD
"Download the CCD file components.cif during installation" ON) "Download the CCD file components.cif during installation" ON)
...@@ -79,6 +76,9 @@ else() ...@@ -79,6 +76,9 @@ else()
option(CIFPP_INSTALL_UPDATE_SCRIPT option(CIFPP_INSTALL_UPDATE_SCRIPT
"Install the script to update CCD and dictionary files" ON) "Install the script to update CCD and dictionary files" ON)
endif() endif()
else()
unset(CIFPP_DOWNLOAD_CCD)
unset(CIFPP_INSTALL_UPDATE_SCRIPT)
endif() endif()
# When CCP4 is sourced in the environment, we can recreate the symmetry # When CCP4 is sourced in the environment, we can recreate the symmetry
...@@ -121,6 +121,7 @@ if(WIN32) ...@@ -121,6 +121,7 @@ if(WIN32)
add_definitions(-D _WIN32_WINNT=0x0501) add_definitions(-D _WIN32_WINNT=0x0501)
endif() endif()
# Man, this is 2024 we're living in...
add_definitions(-DNOMINMAX) add_definitions(-DNOMINMAX)
# We do not want to write an export file for all our symbols... # We do not want to write an export file for all our symbols...
...@@ -132,6 +133,7 @@ if(MSVC) ...@@ -132,6 +133,7 @@ if(MSVC)
add_compile_options(/permissive- /bigobj) add_compile_options(/permissive- /bigobj)
add_link_options(/NODEFAULTLIB:library) add_link_options(/NODEFAULTLIB:library)
# This is dubious...
if(BUILD_SHARED_LIBS) if(BUILD_SHARED_LIBS)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL") set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
else() else()
...@@ -216,7 +218,10 @@ if(MSVC) ...@@ -216,7 +218,10 @@ if(MSVC)
endforeach() endforeach()
endif() endif()
find_package(ZLIB REQUIRED) find_package(ZLIB QUIET)
if(NOT ZLIB_FOUND)
message(FATAL_ERROR "The zlib development files were not found you this system, please install them and try again (hint: on debian/ubuntu use apt-get install zlib1g-dev)")
endif()
# Using Eigen3 is a bit of a thing. We don't want to build it completely since # Using Eigen3 is a bit of a thing. We don't want to build it completely since
# we only need a couple of header files. Nothing special. But often, eigen3 is # we only need a couple of header files. Nothing special. But often, eigen3 is
...@@ -451,80 +456,81 @@ else() ...@@ -451,80 +456,81 @@ else()
unset(CIFPP_CACHE_DIR) unset(CIFPP_CACHE_DIR)
endif() endif()
# Install rules # Avoid full installation in case we are not the top level target
install(TARGETS cifpp if(PROJECT_IS_TOP_LEVEL OR BUILD_FOR_CCP4)
# Install rules
install(TARGETS cifpp
EXPORT cifpp EXPORT cifpp
FILE_SET cifpp_headers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) FILE_SET cifpp_headers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(MSVC AND BUILD_SHARED_LIBS) if(MSVC AND BUILD_SHARED_LIBS)
install( install(
FILES $<TARGET_PDB_FILE:cifpp> FILES $<TARGET_PDB_FILE:cifpp>
DESTINATION ${CMAKE_INSTALL_LIBDIR} DESTINATION ${CMAKE_INSTALL_LIBDIR}
OPTIONAL) OPTIONAL)
endif() endif()
# Clean up old config files (with old names) # Clean up old config files (with old names)
file(GLOB OLD_CONFIG_FILES file(GLOB OLD_CONFIG_FILES
${CMAKE_INSTALL_FULL_LIBDIR}/cmake/cifpp/cifppConfig*.cmake ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/cifpp/cifppConfig*.cmake
${CMAKE_INSTALL_FULL_LIBDIR}/cmake/cifpp/cifppTargets*.cmake) ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/cifpp/cifppTargets*.cmake)
if(OLD_CONFIG_FILES) if(OLD_CONFIG_FILES)
message( message(
STATUS "Installation will remove old config files: ${OLD_CONFIG_FILES}") STATUS "Installation will remove old config files: ${OLD_CONFIG_FILES}")
install(CODE "file(REMOVE ${OLD_CONFIG_FILES})") install(CODE "file(REMOVE ${OLD_CONFIG_FILES})")
endif() endif()
install(EXPORT cifpp install(EXPORT cifpp
NAMESPACE cifpp:: NAMESPACE cifpp::
FILE "cifpp-targets.cmake" FILE "cifpp-targets.cmake"
DESTINATION lib/cmake/cifpp) DESTINATION lib/cmake/cifpp)
if(CIFPP_DATA_DIR AND CIFPP_DOWNLOAD_CCD) if(CIFPP_DATA_DIR AND CIFPP_DOWNLOAD_CCD)
install( install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_ddl.dic FILES ${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_ddl.dic
${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_pdbx.dic ${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_pdbx.dic
${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_ma.dic ${COMPONENTS_CIF} ${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_ma.dic ${COMPONENTS_CIF}
DESTINATION ${CIFPP_DATA_DIR}) DESTINATION ${CIFPP_DATA_DIR})
endif() endif()
if(CIFPP_CACHE_DIR AND CIFPP_DOWNLOAD_CCD) if(CIFPP_CACHE_DIR AND CIFPP_DOWNLOAD_CCD)
install( install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_ddl.dic FILES ${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_ddl.dic
${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_pdbx.dic ${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_pdbx.dic
${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_ma.dic ${COMPONENTS_CIF} ${CMAKE_CURRENT_SOURCE_DIR}/rsrc/mmcif_ma.dic ${COMPONENTS_CIF}
DESTINATION ${CIFPP_CACHE_DIR}) DESTINATION ${CIFPP_CACHE_DIR})
endif() endif()
set(CONFIG_TEMPLATE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cifpp-config.cmake.in) set(CONFIG_TEMPLATE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cifpp-config.cmake.in)
configure_package_config_file( configure_package_config_file(
${CONFIG_TEMPLATE_FILE} ${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifpp-config.cmake ${CONFIG_TEMPLATE_FILE} ${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifpp-config.cmake
INSTALL_DESTINATION lib/cmake/cifpp INSTALL_DESTINATION lib/cmake/cifpp
PATH_VARS CIFPP_DATA_DIR) PATH_VARS CIFPP_DATA_DIR)
install( install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifpp-config.cmake" FILES "${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifpp-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifpp-config-version.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifpp-config-version.cmake"
DESTINATION lib/cmake/cifpp) DESTINATION lib/cmake/cifpp)
set_target_properties( set_target_properties(
cifpp cifpp
PROPERTIES VERSION ${PROJECT_VERSION} PROPERTIES VERSION ${PROJECT_VERSION}
SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}"
INTERFACE_cifpp_MAJOR_VERSION ${PROJECT_VERSION_MAJOR}) INTERFACE_cifpp_MAJOR_VERSION ${PROJECT_VERSION_MAJOR})
set_property( set_property(
TARGET cifpp TARGET cifpp
APPEND APPEND
PROPERTY COMPATIBLE_INTERFACE_STRING cifpp_MAJOR_VERSION) PROPERTY COMPATIBLE_INTERFACE_STRING cifpp_MAJOR_VERSION)
write_basic_package_version_file( write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifpp-config-version.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifpp-config-version.cmake"
VERSION ${PROJECT_VERSION} VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion) COMPATIBILITY AnyNewerVersion)
else()
# In case we're included as sub_directory: # Set this variable so that consumers can find the files in rsrc
if(NOT PROJECT_IS_TOP_LEVEL)
set(CIFPP_SHARE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/rsrc PARENT_SCOPE) set(CIFPP_SHARE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/rsrc PARENT_SCOPE)
endif() endif()
...@@ -585,13 +591,3 @@ endif() ...@@ -585,13 +591,3 @@ endif()
if(BUILD_DOCUMENTATION) if(BUILD_DOCUMENTATION)
add_subdirectory(docs) add_subdirectory(docs)
endif() endif()
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set(CPACK_SOURCE_TGZ ON)
set(CPACK_SOURCE_TBZ2 OFF)
set(CPACK_SOURCE_TXZ OFF)
set(CPACK_SOURCE_TZ OFF)
set(CPACK_SOURCE_IGNORE_FILES "/rsrc/components.cif;/build;/.vscode;/.git")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME})
include(CPack)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment