CMakeLists.txt 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. cmake_minimum_required(VERSION 3.12)
  2. project(paddle_model_protect)
  3. set(CMAKE_CXX_STANDARD 11)
  4. IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
  5. # use "-fvisibility=hidden" instead of "-Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/export_rule.map"
  6. set(CMAKE_C_VISIBILITY_PRESET hidden)
  7. set(CMAKE_CXX_VISIBILITY_PRESET hidden)
  8. set(CMAKE_C_FLAGS "-g -O2 -fPIC ${CMAKE_C_FLAGS}")
  9. set(CMAKE_CXX_FLAGS "-g -O2 -fPIC ${CMAKE_CXX_FLAGS}")
  10. ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")
  11. set(CMAKE_C_FLAGS_RELEASE "/MT")
  12. set(CMAKE_CXX_FLAGS_RELEASE "/MT")
  13. ENDIF ()
  14. SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/bin)
  15. SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/lib)
  16. file(COPY "${PROJECT_SOURCE_DIR}/include/paddle_model_encrypt.h" DESTINATION "${PROJECT_SOURCE_DIR}/output/include/paddle_model_encrypt.h")
  17. file(COPY "${PROJECT_SOURCE_DIR}/include/paddle_model_decrypt.h" DESTINATION "${PROJECT_SOURCE_DIR}/output/include/paddle_model_decrypt.h")
  18. file(COPY "${PROJECT_SOURCE_DIR}/include/paddle_stream_decrypt.h" DESTINATION "${PROJECT_SOURCE_DIR}/output/include/paddle_stream_decrypt.h")
  19. file(COPY "${PROJECT_SOURCE_DIR}/include/model_code.h" DESTINATION "${PROJECT_SOURCE_DIR}/output/include/model_code.h")
  20. set(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rd/openssl-1.1.0k/install-${CMAKE_SYSTEM_PROCESSOR}")
  21. include_directories("../" ${OPENSSL_ROOT_DIR}/include)
  22. include_directories("${CMAKE_CURRENT_SOURCE_DIR}/3rd/gflags/include")
  23. IF (CMAKE_SYSTEM_NAME MATCHES "Windows")
  24. set(OPENSSL_LIBS
  25. "${OPENSSL_ROOT_DIR}/lib/libssl_static.lib"
  26. "${OPENSSL_ROOT_DIR}/lib/libcrypto_static.lib")
  27. set(OPENSSL_LIBS ${OPENSSL_LIBS} ${CMAKE_CURRENT_SOURCE_DIR}/3rd/gflags/lib/gflags_static.lib shlwapi)
  28. ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Linux")
  29. set(OPENSSL_LIBS
  30. "${OPENSSL_ROOT_DIR}/lib/libssl.a"
  31. "${OPENSSL_ROOT_DIR}/lib/libcrypto.a"
  32. -ldl -lpthread)
  33. set(OPENSSL_LIBS ${OPENSSL_LIBS} ${CMAKE_CURRENT_SOURCE_DIR}/3rd/gflags/lib/libgflags.a)
  34. ENDIF ()
  35. message("build no paddle libs")
  36. IF (MSVC)
  37. # Visual Studio 2015
  38. set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ws2_32.lib /NODEFAULTLIB:libcmt.lib")
  39. set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ws2_32.lib /NODEFAULTLIB:libcmt.lib")
  40. ENDIF ()
  41. aux_source_directory(util/src SRC_COMMON)
  42. aux_source_directory(util/src/crypto SRC_COMMON)
  43. set(SRC_ENCRYPT src/paddle_model_encrypt.cpp ${SRC_COMMON})
  44. # tool: paddle_encrypt_tool
  45. add_executable(paddle_encrypt_tool
  46. sample/paddle_encrypt_tool.cpp
  47. ${SRC_ENCRYPT})
  48. target_link_libraries(paddle_encrypt_tool ${OPENSSL_LIBS})