cmake_minimum_required(VERSION 3.9) project(SecMedia VERSION 0.0.1 DESCRIPTION "Security Media Package") set(CMAKE_CXX_STANDARD 11) if(${CMAKE_BUILD_TYPE} MATCHES "Release") message(STATUS "Release版本") set(BuildType "Release") add_definitions(-DNDEBUG) add_definitions(-DDEBUG_LOG) elseif(${CMAKE_BUILD_TYPE} MATCHES "MinSizeRel") message(STATUS "MinSizeRel版本") set(BuildType "MinSizeRel") else() set(BuildType "Debug") message(STATUS "Debug版本") add_definitions(-DDEBUG_LOG) add_definitions(-DNDEBUG) endif() SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/release/lib) SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/release/out) set(CMAKE_C_VISIBILITY_PRESET hidden) set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_C_FLAGS$ "${CMAKE_C_FLAGS} -fvisibility = hidden") set(CMAKE_CXX_FLAGS$ "${CMAKE_CXX_FLAGS} -fvisibility = hidden") set(SecMedia_Root ${CMAKE_CURRENT_SOURCE_DIR}/src) add_compile_options(-fPIC) add_compile_options(-fvisibility=hidden) #add_compile_options(-std=c++11) #add_compile_options(-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations -Wcast-align) include(GNUInstallDirs) include(GenerateExportHeader) include_directories(${SecMedia_Root}/SVAC/src/svac_src) #添加svac解密 aux_source_directory(${SecMedia_Root}/SVAC/src/sm2sm3 src_DEC) aux_source_directory(${SecMedia_Root}/SVAC/src/svac_src src_DEC) add_library(SVAC_DEC STATIC ${src_DEC}) #添加svac加密 #include_directories(${DEC_ENC_Algorithm}/SVAC/svac_enc) #file(GLOB src_DEC_ENC ${DEC_ENC_Algorithm}/SVAC/svac_enc/*/*.c ${DEC_ENC_Algorithm}/SVAC/svac_enc/*/*.h) aux_source_directory(${SecMedia_Root}/SVAC/src/sm2sm3_enc src_ENC) aux_source_directory(${SecMedia_Root}/SVAC/src/svac_src src_ENC) add_library(SVAC_ENC STATIC ${src_ENC}) list(APPEND LINK_LIB_SVAC_LIST SVAC_DEC) list(APPEND LINK_LIB_SVAC_LIST SVAC_ENC) include_directories(include src) # add_definitions(-DGENERATE_EXPORT) #file(GLOB SecMedia_src_list ${SecMedia_Root}/SVAC/./*.c ${SecMedia_Root}/SVAC/./*.h) file(GLOB SecMedia_src_list ${SecMedia_Root}/*/*.cpp ${SecMedia_Root}/*/*.h ${SecMedia_Root}/*/*.c ${SecMedia_Root}/*/*/*.cpp ${SecMedia_Root}/*/*/*.h ${SecMedia_Root}/*/*/*.c) file(GLOB SecMedia_api_list ${CMAKE_CURRENT_SOURCE_DIR}/include/common.h) # # target_compile_options(${PROJECT_NAME} PRIVATE -fvisibility=hidden) #add_library(${PROJECT_NAME} SHARED ${SecMedia_src_list}) add_library(${PROJECT_NAME} STATIC ${SecMedia_src_list}) target_link_libraries(${PROJECT_NAME} ${LINK_LIB_SVAC_LIST}) target_include_directories(${PROJECT_NAME} PRIVATE ${SecMedia_Root}/.) set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1 PUBLIC_HEADER ${SecMedia_api_list} ) # CXX_VISIBILITY_PRESET hidden # CMAKE_C_FLAGS hidden) list(APPEND LINK_LIB_LIST ${PROJECT_NAME}) #set(LINK_LIB_LIST ) #MESSAGE(STATUS ${SecMedia_api_list}) #configure_file(SecMedia.pc.in SecMedia.pc @ONLY) # install(TARGETS ${PROJECT_NAME} # LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) # install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc # DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig) add_subdirectory(test)