CMakeLists.txt 945 B

12345678910111213141516171819202122232425262728293031
  1. cmake_minimum_required(VERSION 3.5)
  2. # 获取上级目录名做为库名
  3. get_filename_component(CURRENT_DIR ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE)
  4. get_filename_component(LIBRARY_NAME ${CURRENT_DIR} NAME)
  5. file(GLOB SOURCE_FILES "${PROJECT_SOURCE_DIR}/3rdparty/${LIBRARY_NAME}/src/*.*")
  6. if(MSVC)
  7. add_definitions(
  8. -D_WINDOWS
  9. -DLEVELDB_COMPILE_LIBRARY
  10. -DLEVELDB_PLATFORM_WINDOWS=1
  11. -D_UNICODE
  12. -DUNICODE
  13. -D_HAS_EXCEPTIONS=0
  14. )
  15. endif()
  16. # 创建库
  17. add_library(${LIBRARY_NAME} ${SOURCE_FILES})
  18. set_target_properties(${LIBRARY_NAME} PROPERTIES OUTPUT_NAME_DEBUG "${LIBRARY_NAME}_d" OUTPUT_NAME_RELEASE ${LIBRARY_NAME})
  19. # 将包含目录与目标相关联,这样只有在编译此库时才会包含这些目录
  20. target_include_directories(${LIBRARY_NAME} PUBLIC "${PROJECT_SOURCE_DIR}/3rdparty/${LIBRARY_NAME}/include")
  21. set_property(TARGET ${LIBRARY_NAME} PROPERTY FOLDER "3rdparty")
  22. install(TARGETS ${LIBRARY_NAME} DESTINATION lib)