PageRenderTime 55ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/zuluCrypt-cli/CMakeLists.txt

https://gitlab.com/m.schmidt/zuluCrypt
CMake | 230 lines | 152 code | 59 blank | 19 comment | 3 complexity | 39e7719ae9ef5e3cdaf2dadb396b18a8 MD5 | raw file
Possible License(s): BSD-3-Clause-No-Nuclear-License-2014, BSD-2-Clause
  1. cmake_minimum_required(VERSION 2.6)
  2. file(WRITE ${PROJECT_BINARY_DIR}/bin_path.h "\n#define ZULUCRYPTzuluCrypt \"${CMAKE_INSTALL_PREFIX}/bin/zuluCrypt-cli\"\n")
  3. file(APPEND ${PROJECT_BINARY_DIR}/bin_path.h "\n#define zuluMountPath \"${CMAKE_INSTALL_PREFIX}/bin/zuluMount-cli\"\n")
  4. file(APPEND ${PROJECT_BINARY_DIR}/bin_path.h "\n#define ZULUCRYPTplugInPath \"${CMAKE_INSTALL_PREFIX}/zuluCrypt/zuluCrypt-testKey\"\n")
  5. add_definitions( -I${PROJECT_BINARY_DIR} )
  6. SET( BIN
  7. bin/close_volume.c
  8. bin/add_key.c
  9. bin/volume_info.c
  10. bin/open_volume.c
  11. bin/volumes.c
  12. bin/security.c
  13. bin/check_invalid_key.c
  14. bin/create_volumes.c
  15. bin/remove_key.c
  16. bin/write_device_with_junk.c
  17. bin/save_and_restore_volume_header.c
  18. bin/crypt_file.c
  19. bin/check_opened_mapper.c
  20. bin/get_opts.c
  21. bin/help.c
  22. bin/mount_flags.c
  23. bin/file_encryption.c
  24. bin/clear_dead_mappers.c
  25. bin/bind.c
  26. bin/create_mount_point.c
  27. bin/path_access.c
  28. bin/test.c
  29. )
  30. SET( BINMount
  31. ../zuluMount-cli/volume_status.c
  32. ../zuluMount-cli/main.c
  33. ../zuluMount-cli/mount.c
  34. ../zuluMount-cli/umount.c
  35. ../zuluMount-cli/crypto_mount.c
  36. ../zuluMount-cli/crypto_umount.c
  37. )
  38. SET( LIB
  39. lib/process_mountinfo.c
  40. lib/create_mapper_name.c
  41. lib/is_path_valid.c
  42. lib/version.c
  43. lib/close_volume.c
  44. lib/add_key.c
  45. lib/remove_key.c
  46. lib/empty_slots.c
  47. lib/status.c
  48. lib/create_luks.c
  49. lib/is_luks.c
  50. lib/create_volume.c
  51. lib/close_mapper.c
  52. lib/open_luks.c
  53. lib/open_plain.c
  54. lib/open_volume.c
  55. lib/mount_volume.c
  56. lib/unmount_volume.c
  57. lib/user_home_path.c
  58. lib/create_loop_device.c
  59. lib/blkid_evaluate_tag.c
  60. lib/open_tcrypt.c
  61. lib/volume_type.c
  62. lib/mount_fs_options.c
  63. lib/real_path.c
  64. lib/file_path_security.c
  65. lib/canonicalize/canonicalize.c
  66. lib/create_tcrypt.c
  67. lib/parse_fstab.c
  68. lib/resolve_paths.c
  69. )
  70. add_library( Socket STATIC utility/socket/socket.c )
  71. #add_library( String STATIC string/String.c string/StringManage.c )
  72. add_library( String STATIC utility/string/String.c )
  73. add_library( StringList STATIC utility/string/StringList.c )
  74. add_library( Process STATIC utility/process/process.c )
  75. TARGET_LINK_LIBRARIES( Process -pthread )
  76. add_library( zuluCrypt-exe SHARED ${BIN} )
  77. #add_library( zuluCrypt-exe-static STATIC ${BIN} )
  78. add_library( zuluCrypt SHARED ${LIB} )
  79. #add_library( zuluCrypt-static STATIC ${LIB} )
  80. add_library( zuluCryptPluginManager SHARED pluginManager/zuluCryptPluginManager.c )
  81. #add_library( zuluCryptPluginManager-static STATIC pluginManager/zuluCryptPluginManager.c )
  82. TARGET_LINK_LIBRARIES( zuluCryptPluginManager Socket Process String )
  83. #TARGET_LINK_LIBRARIES( zuluCryptPluginManager-static Socket Process String )
  84. set_target_properties( zuluCryptPluginManager PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  85. #set_target_properties( zuluCryptPluginManager-static PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wall -s -fPIC -pthread -pedantic " )
  86. set_target_properties( zuluCryptPluginManager PROPERTIES SOVERSION ${LIB_PLUGIN_VERSION} )
  87. set_target_properties( Socket PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  88. set_target_properties( String PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  89. set_target_properties( StringList PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  90. set_target_properties( Process PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  91. set_target_properties( zuluCrypt-exe PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  92. set_target_properties( zuluCrypt PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  93. #set_target_properties( zuluCrypt-exe-static PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  94. #set_target_properties( zuluCrypt-static PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIC -pthread -pedantic " )
  95. set_target_properties( zuluCrypt PROPERTIES SOVERSION ${LIB_VERSION} )
  96. set_target_properties( zuluCrypt-exe PROPERTIES SOVERSION ${LIB_VERSION} )
  97. if( STATIC_TCPLAY )
  98. TARGET_LINK_LIBRARIES( zuluCrypt String StringList Process ${cryptsetup_lib} ${blkid} -lgcrypt tcplay-static )
  99. else()
  100. TARGET_LINK_LIBRARIES( zuluCrypt String StringList Process ${cryptsetup_lib} ${blkid} ${TCPLAY_LIB} -lgcrypt ${TCPLAY_LIBRARIES} )
  101. endif()
  102. set_target_properties( zuluCrypt PROPERTIES LINK_FLAGS "-pie -Wl,-z,relro -Wl,-z,now" )
  103. TARGET_LINK_LIBRARIES( zuluCrypt-exe zuluCrypt zuluCryptPluginManager )
  104. set_target_properties( zuluCrypt-exe PROPERTIES LINK_FLAGS "-pie -Wl,-z,relro -Wl,-z,now" )
  105. #TARGET_LINK_LIBRARIES( zuluCrypt-static String StringList Process )
  106. #TARGET_LINK_LIBRARIES( zuluCrypt-exe-static zuluCrypt-static zuluCryptPluginManager-static )
  107. TARGET_LINK_LIBRARIES( zuluCrypt-exe zuluCrypt )
  108. add_executable( zuluMount-cli ../zuluMount-cli ${BINMount} )
  109. set_target_properties( zuluMount-cli PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIE -pthread -pedantic " )
  110. set_target_properties( zuluMount-cli PROPERTIES LINK_FLAGS "-pie -Wl,-z,relro -Wl,-z,now" )
  111. TARGET_LINK_LIBRARIES( zuluMount-cli zuluCrypt-exe zuluCrypt )
  112. add_executable( zuluCrypt-cli bin/main.c )
  113. set_target_properties( zuluCrypt-cli PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIE -pthread -pedantic " )
  114. set_target_properties( zuluCrypt-cli PROPERTIES LINK_FLAGS "-pie -Wl,-z,relro -Wl,-z,now" )
  115. TARGET_LINK_LIBRARIES( zuluCrypt-cli zuluCrypt-exe zuluCrypt )
  116. set_target_properties( zuluCrypt-cli PROPERTIES INSTALL_RPATH "${LIB_PATH}" )
  117. set_target_properties( zuluMount-cli PROPERTIES INSTALL_RPATH "${LIB_PATH}" )
  118. #zuluCryptKeyServer not used
  119. add_executable( zuluCryptKeyServer ../plugins/network_key/server.c ../zuluCrypt-gui/lxqt_wallet/backend/lxqtwallet.c )
  120. set_target_properties( zuluCryptKeyServer PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wall -s -fPIE -pthread -pedantic " )
  121. TARGET_LINK_LIBRARIES( zuluCryptKeyServer crypt_buffer )
  122. if( NOT NOSECRETSUPPORT )
  123. pkg_check_modules( LIBSECRET libsecret-1 )
  124. if( LIBSECRET_FOUND )
  125. add_definitions( ${LIBSECRET_CFLAGS} )
  126. add_executable( keyring ../plugins/keyring/keyring.c )
  127. set_target_properties( keyring PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wall -s -fPIE -pthread -pedantic" )
  128. set_target_properties( keyring PROPERTIES LINK_FLAGS "-pie" )
  129. TARGET_LINK_LIBRARIES( keyring zuluCryptPluginManager ${keyring_library} ${blkid} ${LIBSECRET_LIBRARIES} )
  130. set_target_properties( keyring PROPERTIES INSTALL_RPATH "${LIB_PATH}" )
  131. install( TARGETS keyring RUNTIME DESTINATION "${PLUGINPATH}" )
  132. endif()
  133. endif()
  134. install(TARGETS zuluCrypt-cli RUNTIME DESTINATION bin
  135. PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE SETUID
  136. )
  137. install(TARGETS zuluMount-cli RUNTIME DESTINATION bin
  138. PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE SETUID
  139. )
  140. add_executable( zuluCrypt-testKey ../plugins/test/zuluCrypt-testKey.c )
  141. set_target_properties( zuluCrypt-testKey PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64 -Wextra -Wall -s -fPIE -pthread -pedantic " )
  142. set_target_properties( zuluCrypt-testKey PROPERTIES LINK_FLAGS "-pie" )
  143. TARGET_LINK_LIBRARIES( zuluCrypt-testKey zuluCryptPluginManager ${blkid} )
  144. set_target_properties( zuluCrypt-testKey PROPERTIES INSTALL_RPATH "${LIB_PATH}" )
  145. #set_target_properties( zuluCrypt-test PROPERTIES INSTALL_RPATH "${LIB_PATH}" )
  146. file( WRITE ${PROJECT_BINARY_DIR}/libzuluCrypt.pc
  147. "prefix=${CMAKE_INSTALL_PREFIX}
  148. exec_prefix=${CMAKE_INSTALL_PREFIX}
  149. libdir=${LIB_PATH}
  150. includedir=${CMAKE_INSTALL_PREFIX}/include
  151. Name: libzuluCrypt
  152. Description: a zuluCrypt library,a front end to cryptsetup
  153. Version: ${LIB_VERSION}
  154. Libs: -L${LIB_PATH} -lcryptsetup -lzuluCrypt -lzuluCrypt-exe -lzuluCryptPluginManager -lblkid -lmount ${TCPLAY_LIB} -L${TCPLAY_LIBDIR} -L${BLKID_LIBDIR} -L${CRYPTSETUP_LIBDIR}
  155. Cflags: -I${CMAKE_INSTALL_PREFIX}/include
  156. \n")
  157. #install(TARGETS zuluCrypt-test RUNTIME DESTINATION bin
  158. #PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
  159. #)
  160. install( TARGETS zuluCrypt-testKey RUNTIME DESTINATION "${PLUGINPATH}" )
  161. # ${LIB_PATH} is set in ../CMakeLists.txt
  162. install(TARGETS zuluCryptPluginManager LIBRARY DESTINATION ${LIB_PATH} )
  163. #install(TARGETS zuluCryptPluginManager-static ARCHIVE DESTINATION ${LIB_PATH} )
  164. install(TARGETS zuluCrypt LIBRARY DESTINATION ${LIB_PATH} )
  165. install(TARGETS zuluCrypt-exe LIBRARY DESTINATION ${LIB_PATH} )
  166. #install(TARGETS zuluCrypt-exe-static ARCHIVE DESTINATION ${LIB_PATH} )
  167. #install(TARGETS zuluCrypt-static ARCHIVE DESTINATION ${LIB_PATH} )
  168. install(FILES lib/libzuluCrypt.h DESTINATION include/zuluCrypt )
  169. install(FILES bin/libzuluCrypt-exe.h DESTINATION include/zuluCrypt )
  170. install(FILES pluginManager/libzuluCryptPluginManager.h DESTINATION include/zuluCrypt )
  171. install(FILES ${PROJECT_BINARY_DIR}/libzuluCrypt.pc DESTINATION ${LIB_PATH}/pkgconfig/ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ )