| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- cmake_minimum_required(VERSION 3.12)
- project(paddle_model_protect)
- set(CMAKE_CXX_STANDARD 11)
- option(WITH_PADDLE "build with paddle libs" ON)
- IF (CMAKE_SYSTEM_NAME MATCHES "Windows")
- option(PM_EXPORTS "export symbols in windows" ON)
- IF (PM_EXPORTS)
- message("add_definitions of PM_EXPORTS")
- add_definitions("-DPM_EXPORTS")
- ENDIF ()
- ENDIF ()
- IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
- # use "-fvisibility=hidden" instead of "-Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/export_rule.map"
- set(CMAKE_C_VISIBILITY_PRESET hidden)
- set(CMAKE_CXX_VISIBILITY_PRESET hidden)
- set(CMAKE_C_FLAGS "-g -O2 -fPIC ${CMAKE_C_FLAGS}")
- set(CMAKE_CXX_FLAGS "-g -O2 -fPIC ${CMAKE_CXX_FLAGS}")
- ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")
- set(CMAKE_C_FLAGS_RELEASE "/MT")
- set(CMAKE_CXX_FLAGS_RELEASE "/MT")
- ENDIF ()
- SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/bin)
- SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/lib)
- file(COPY "${PROJECT_SOURCE_DIR}/include/paddle_model_encrypt.h" DESTINATION "${PROJECT_SOURCE_DIR}/output/include/paddle_model_encrypt.h")
- IF(WITH_PADDLE)
- file(COPY "${PROJECT_SOURCE_DIR}/include/paddle_model_decrypt.h" DESTINATION "${PROJECT_SOURCE_DIR}/output/include/paddle_model_decrypt.h")
- ENDIF()
- file(COPY "${PROJECT_SOURCE_DIR}/include/paddle_stream_decrypt.h" DESTINATION "${PROJECT_SOURCE_DIR}/output/include/paddle_stream_decrypt.h")
- file(COPY "${PROJECT_SOURCE_DIR}/include/model_code.h" DESTINATION "${PROJECT_SOURCE_DIR}/output/include/model_code.h")
- set(SRC_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
- set(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rd/openssl-1.1.0k/install-${CMAKE_SYSTEM_PROCESSOR}")
- set(OPENSSL_INCLUDE "${OPENSSL_ROOT_DIR}/include")
- IF (CMAKE_SYSTEM_NAME MATCHES "Windows")
- set(OPENSSL_LIBS
- "${OPENSSL_ROOT_DIR}/lib/libssl_static.lib"
- "${OPENSSL_ROOT_DIR}/lib/libcrypto_static.lib")
- ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Linux")
- set(OPENSSL_LIBS
- "${OPENSSL_ROOT_DIR}/lib/libssl.a"
- "${OPENSSL_ROOT_DIR}/lib/libcrypto.a")
- ENDIF ()
- IF(WITH_PADDLE)
- set(PADDLE_INCLUDE_DIR "${PADDLE_DIR}/include")
- IF (CMAKE_SYSTEM_NAME MATCHES "Windows")
- # -DPADDLE_DIR=C:\developer\Paddle-developer\Paddle\build\fluid_inference_install_dir\paddle
- # developer paddle_fluid.lib
- # set(PADDLE_LIBS "${PADDLE_DIR}/lib/paddle_fluid.lib")
- # 2.0.1 paddle_inference.lib
- set(PADDLE_LIBS "${PADDLE_DIR}/lib/paddle_inference.lib")
- ENDIF ()
- ENDIF ()
- IF(WITH_PADDLE)
- message("build with paddle libs")
- include_directories(
- include
- ${OPENSSL_INCLUDE}
- ${PADDLE_INCLUDE_DIR}
- )
- ELSE()
- message("build no paddle libs")
- include_directories(
- include
- ${OPENSSL_INCLUDE}
- )
- ENDIF()
- IF (MSVC)
- # Visual Studio 2015
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ws2_32.lib /NODEFAULTLIB:libcmt.lib")
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ws2_32.lib /NODEFAULTLIB:libcmt.lib")
- ENDIF ()
- add_subdirectory(${SRC_ROOT_DIR})
|