cmake_minimum_required(VERSION 2.8.8) project(ccp4i2 C CXX) if(APPLE) EXEC_PROGRAM(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION) STRING(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION}) MESSAGE(STATUS "DARWIN_VERSION=${DARWIN_VERSION}") IF (DARWIN_VERSION LESS 10) INCLUDE_DIRECTORIES ( /Developer/Headers/FlatCarbon ) ENDIF (DARWIN_VERSION LESS 10) find_library(CARBON_LIBRARY Carbon) find_library(COREFOUNDATION_LIBRARY CoreFoundation) mark_as_advanced (CARBON_LIBRARY ) endif(APPLE) if(APPLE) find_program(PYTHON NAMES $ENV{PYTHON} ccp4-python python2.7 python.exe HINTS ${CMAKE_INSTALL_PREFIX}/bin PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.7\\InstallPath]) endif() message(STATUS "Python interpreter: ${PYTHON}") if(APPLE) # avoid FindPythonLibs as it can find libpython from different interpreter execute_process(COMMAND ${PYTHON} -c "import sys; sys.stdout.write(sys.prefix)" OUTPUT_VARIABLE _PY_PREFIX RESULT_VARIABLE failure) if (failure) message(FATAL_ERROR "Failed to run ${PYTHON}: ${failure}") endif() message(STATUS "Python sys.prefix: ${_PY_PREFIX}") find_library(PYTHON_LIBRARY NAMES python2.7 python27 HINTS ${_PY_PREFIX}/lib ${_PY_PREFIX}/lib64 ${_PY_PREFIX}/libs NO_DEFAULT_PATH) if (NOT PYTHON_LIBRARY) message(FATAL_ERROR "Python library not found.") endif() message(STATUS "Python library: ${PYTHON_LIBRARY}") find_path(PYTHON_INCLUDE_DIR NAMES Python.h HINTS ${_PY_PREFIX}/include ${_PY_PREFIX}/include/python2.7 NO_DEFAULT_PATH) message(STATUS "Python.h is in: ${PYTHON_INCLUDE_DIR}") if (NOT PYTHON_INCLUDE_DIR) message(FATAL_ERROR "Python header not found.") endif() set(PYTHON_LIBRARIES ${PYTHON_LIBRARY}) endif() include_directories(${PYTHON_INCLUDE_DIR}) if(APPLE) set( PROGNAME ccp4i2 ) set( MACOSX_BUNDLE_ICON_FILE ccp4i2.icns ) set( OSX_ICON_FILE ${CMAKE_SOURCE_DIR}/MacOSX/Resources/ccp4i2.icns ) set( MACOSX_BUNDLE_SHORT_VERSION_STRING 1.0.0 ) set( MACOSX_BUNDLE_VERSION 1.0 ) set( MACOSX_BUNDLE_LONG_VERSION_STRING Version 1.0.0 ) set( MACOSX_BUNDLE_BUNDLE_NAME ccp4i2 ) set (QTMG_SRC ccp4i2.cc) set_source_files_properties(${OSX_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) add_executable( ${PROGNAME} MACOSX_BUNDLE ${QTMG_SRC} ${OSX_ICON_FILE} ) target_link_libraries(${PROGNAME} ${COREFOUNDATION_LIBRARY}) install(TARGETS ${PROGNAME} DESTINATION .) install(CODE " include(BundleUtilities) set(BU_CHMOD_BUNDLE_ITEMS 1) # needed for libssl fixup_bundle(\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${PROGNAME}.app\" \"\" \"\") ") endif() if(APPLE) install(DIRECTORY ${CMAKE_SOURCE_DIR}/MacOSX DESTINATION share/ccp4i2 USE_SOURCE_PERMISSIONS) endif() install(DIRECTORY ${CMAKE_SOURCE_DIR}/bin DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/core DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/data DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/dbapi DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/demo_data DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/docs DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/googlecode DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/local_setup DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/model DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/pimple DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/pipelines DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/qtcore DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/qtgui DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/qticons DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/report DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/smartie DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/tasks DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/test DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/utils DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/wrappers DESTINATION share/ccp4i2) install(DIRECTORY ${CMAKE_SOURCE_DIR}/wrappers2 DESTINATION share/ccp4i2) install(PROGRAMS ${CMAKE_SOURCE_DIR}/bin/ccp4i2 DESTINATION bin) install(PROGRAMS ${CMAKE_SOURCE_DIR}/bin/ccp4i2-update DESTINATION bin) install(FILES ${CMAKE_SOURCE_DIR}/RELEASE_NOTES DESTINATION share/ccp4i2)