CMakeLists.txt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. if(BUILD_UNIT_TESTS)
  2. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUNIT_TEST -DBVAR_NOT_LINK_DEFAULT_VARIABLES")
  3. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUNIT_TEST")
  4. elseif(NOT DEBUG)
  5. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
  6. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG")
  7. endif()
  8. include_directories(${CMAKE_CURRENT_BINARY_DIR})
  9. include_directories(${CMAKE_SOURCE_DIR}/src)
  10. add_library(BUTIL_LIB OBJECT ${BUTIL_SOURCES})
  11. add_library(OBJ_LIB OBJECT ${SOURCES})
  12. # shared library needs POSITION_INDEPENDENT_CODE
  13. set_property(TARGET ${OBJ_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1)
  14. set_property(TARGET ${BUTIL_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1)
  15. add_library(brpc-shared SHARED $<TARGET_OBJECTS:BUTIL_LIB> $<TARGET_OBJECTS:OBJ_LIB>)
  16. add_library(brpc-static STATIC $<TARGET_OBJECTS:BUTIL_LIB> $<TARGET_OBJECTS:OBJ_LIB>)
  17. target_link_libraries(brpc-shared ${DYNAMIC_LIB})
  18. if(BRPC_WITH_GLOG)
  19. target_link_libraries(brpc-shared ${GLOG_LIB})
  20. endif()
  21. SET_TARGET_PROPERTIES(brpc-static PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1)
  22. SET_TARGET_PROPERTIES(brpc-shared PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1)
  23. # for protoc-gen-mcpack
  24. set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/output/bin)
  25. set(protoc_gen_mcpack_SOURCES
  26. ${CMAKE_SOURCE_DIR}/src/mcpack2pb/generator.cpp
  27. )
  28. add_executable(protoc-gen-mcpack ${protoc_gen_mcpack_SOURCES})
  29. target_link_libraries(protoc-gen-mcpack brpc-shared)
  30. get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
  31. if ("${LIB64}" STREQUAL "TRUE")
  32. set(LIBSUFFIX 64)
  33. else()
  34. set(LIBSUFFIX "")
  35. endif()
  36. #install directory
  37. # cmake -DCMAKE_INSTALL_PREFIX=/usr
  38. install(TARGETS brpc-shared
  39. RUNTIME DESTINATION bin
  40. LIBRARY DESTINATION lib${LIBSUFFIX}
  41. ARCHIVE DESTINATION lib${LIBSUFFIX}
  42. )
  43. install(TARGETS brpc-static
  44. RUNTIME DESTINATION bin
  45. LIBRARY DESTINATION lib${LIBSUFFIX}
  46. ARCHIVE DESTINATION lib${LIBSUFFIX}
  47. )