find_package(Boost REQUIRED COMPONENTS filesystem program_options system) set(block_util_headers block_cmd_parser.hpp block_dumper.hpp block_input.hpp data_parsers.hpp helpers/command_line.hpp) add_executable(util_encrypt_block encrypt_block.cpp ${block_util_headers}) target_include_directories(util_encrypt_block SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) target_link_libraries(util_encrypt_block PRIVATE aesxx ${Boost_LIBRARIES}) set_target_properties(util_encrypt_block PROPERTIES OUTPUT_NAME encrypt_block) add_executable(util_decrypt_block decrypt_block.cpp ${block_util_headers}) target_include_directories(util_decrypt_block SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) target_link_libraries(util_decrypt_block PRIVATE aesxx ${Boost_LIBRARIES}) set_target_properties(util_decrypt_block PROPERTIES OUTPUT_NAME decrypt_block) set(file_util_headers data_parsers.hpp file_cmd_parser.hpp helpers/command_line.hpp helpers/file.hpp) add_executable(util_encrypt_file encrypt_file.cpp ${file_util_headers}) target_include_directories(util_encrypt_file SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) target_link_libraries(util_encrypt_file PRIVATE aesxx ${Boost_LIBRARIES}) set_target_properties(util_encrypt_file PROPERTIES OUTPUT_NAME encrypt_file) add_executable(util_decrypt_file decrypt_file.cpp ${file_util_headers}) target_include_directories(util_decrypt_file SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) target_link_libraries(util_decrypt_file PRIVATE aesxx ${Boost_LIBRARIES}) set_target_properties(util_decrypt_file PROPERTIES OUTPUT_NAME decrypt_file) set(bmp_util_headers ${file_util_headers} helpers/bmp.hpp) add_executable(util_encrypt_bmp encrypt_bmp.cpp ${bmp_util_headers}) target_include_directories(util_encrypt_bmp SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) target_link_libraries(util_encrypt_bmp PRIVATE aesxx ${Boost_LIBRARIES}) set_target_properties(util_encrypt_bmp PROPERTIES OUTPUT_NAME encrypt_bmp) add_executable(util_decrypt_bmp decrypt_bmp.cpp ${bmp_util_headers}) target_include_directories(util_decrypt_bmp SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) target_link_libraries(util_decrypt_bmp PRIVATE aesxx ${Boost_LIBRARIES}) set_target_properties(util_decrypt_bmp PROPERTIES OUTPUT_NAME decrypt_bmp) install(TARGETS util_encrypt_block util_encrypt_file util_encrypt_bmp util_decrypt_block util_decrypt_file util_decrypt_bmp RUNTIME DESTINATION bin)