INCLUDE(messmer/cmake/tools) INCLUDE(messmer/gitversion/cmake) SETUP_GOOGLETEST() # Actually create targets: EXEcutables and libraries. ADD_BII_TARGETS() ACTIVATE_CPP14() ADD_BOOST(program_options chrono) ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64) GIT_VERSION_INIT() ENABLE_STYLE_WARNINGS() SET_TARGET_PROPERTIES(${BII_src_main_TARGET} PROPERTIES OUTPUT_NAME cryfs) INSTALL(TARGETS ${BII_src_main_TARGET} DESTINATION bin CONFIGURATIONS Release) SET(CPACK_GENERATOR TGZ STGZ 7Z ZIP DEB RPM) SET(CPACK_PACKAGE_NAME "cryfs") SET(CPACK_PACKAGE_VERSION "${GITVERSION_VERSION_STRING}") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CryFS encrypts your files, so you can safely store them anywhere. It works well together with cloud services like Dropbox, iCloud, OneDrive and others.") SET(CPACK_PACKAGE_CONTACT "messmer@cryfs.org") SET(CPACK_PACKAGE_VENDOR "Sebastian Messmer") SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") IF(WIN32 AND NOT UNIX) # There is a bug in NSI that does not handle full unix paths properly. Make # sure there is at least one set of four (4) backlasshes. #SET(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp") #SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\cryfs.exe") #SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} CryFS") #SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.cryfs.org") #SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.cryfs.org") #SET(CPACK_NSIS_CONTACT "messmer@cryfs.org") #SET(CPACK_NSIS_MODIFY_PATH ON) ELSE(WIN32 AND NOT UNIX) SET(CPACK_STRIP_FILES "bin/cryfs") SET(CPACK_SOURCE_STRIP_FILES "") ENDIF(WIN32 AND NOT UNIX) SET(CPACK_PACKAGE_EXECUTABLES "cryfs" "CryFS") SET(CPACK_DEBIAN_PACKAGE_SECTION "utils") #SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libfuse2 (>= 2.7.4-1)") # TODO Use correct minimal fuse version #SET(CPACK_RPM_PACKAGE_REQUIRES "libfuse (>= 2.7.4-1)") # TODO Use correct minimal fuse version SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") # TODO Other architectures? SET(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") # TODO Other architectures? SET(CPACK_RPM_PACKAGE_LICENSE "LGPLv3") INCLUDE(CPack) # You can safely delete lines from here... ############################################################################### # REFERENCE # ############################################################################### # # This CMakeLists.txt file helps defining your block building and compiling # To learn more about the CMake use with biicode, visit http://docs.biicode.com/c++.html # # ---------------------------------------------------- # NEW FEATURE! Include cmake files from remote blocks: # ----------------------------------------------------- # Now you can handle cmake dependencies alike you do with c/c++: # # INCLUDE(user/block/myrecipe) # include myrecipe.cmake from remote user/block # # > EXAMPLE: Include our recipes and activate C++11 in your block (http://www.biicode.com/biicode/cmake) # # INCLUDE(biicode/cmake/tools) # Include tools.cmake file from "cmake" block from the "biicode" user # ACTIVATE_CPP11(INTERFACE ${BII_BLOCK_TARGET}) # # Remember to run "bii find" to download out cmake tools file # # --------------------- # INIT_BIICODE_BLOCK() # --------------------- # This function creates several helper variables as ${BII_BLOCK_NAME} and ${BII_BLOCK_USER} # Also it loads variables from the cmake/bii_user_block_vars.cmake # ${BII_LIB_SRC} File list to create the library # ${BII_LIB_TYPE} Empty (default, STATIC most casess) STATIC or SHARED # ${BII_LIB_DEPS} Dependencies to other libraries (user2_block2, user3_blockX) # ${BII_LIB_SYSTEM_HEADERS} System linking requirements as windows.h, pthread.h, etc # # You can use or modify them here, for example, to add or remove files from targets based on OS # Or use typical cmake configurations done BEFORE defining targets. Examples: # ADD_DEFINITIONS(-DFOO) # FIND_PACKAGE(OpenGL QUIET) # You can add INCLUDE_DIRECTORIES here too # # --------------------- # ADD_BIICODE_TARGETS() # --------------------- # # This function creates the following variables: # ${BII_BLOCK_TARGET} Interface (no files) target for convenient configuration of all # targets in this block, as the rest of targets always depend on it # has name in the form "user_block_interface" # ${BII_LIB_TARGET} Target library name, usually in the form "user_block". May not exist # if BII_LIB_SRC is empty # ${BII_BLOCK_TARGETS} List of all targets defined in this block # ${BII_BLOCK_EXES} List of executables targets defined in this block # ${BII_exe_name_TARGET}: Executable target (e.g. ${BII_main_TARGET}. You can also use # directly the name of the executable target (e.g. user_block_main) # # > EXAMPLE: Add include directories to all targets of this block # # TARGET_INCLUDE_DIRECTORIES(${BII_BLOCK_TARGET} INTERFACE myincludedir) # # You can add private include directories to the Lib (if existing) # # > EXAMPLE: Link with pthread: # # TARGET_LINK_LIBRARIES(${BII_BLOCK_TARGET} INTERFACE pthread) # or link against library: # TARGET_LINK_LIBRARIES(${BII_LIB_TARGET} PUBLIC pthread) # or directly use the library target name: # TARGET_LINK_LIBRARIES(user_block PUBLIC pthread) # # NOTE: This can be also done adding pthread to ${BII_LIB_DEPS} # BEFORE calling ADD_BIICODE_TARGETS() # # > EXAMPLE: how to activate C++11 # # IF(APPLE) # TARGET_COMPILE_OPTIONS(${BII_BLOCK_TARGET} INTERFACE "-std=c++11 -stdlib=libc++") # ELSEIF (WIN32 OR UNIX) # TARGET_COMPILE_OPTIONS(${BII_BLOCK_TARGET} INTERFACE "-std=c++11") # ENDIF(APPLE) # # > EXAMPLE: Set properties to target # # SET_TARGET_PROPERTIES(${BII_BLOCK_TARGET} PROPERTIES COMPILE_DEFINITIONS "IOV_MAX=255") #