CMakeLists.txt 2.11 KB
Newer Older
1
if(BUILD_UNIT_TESTS)
zhujiashun's avatar
zhujiashun committed
2 3 4 5 6
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUNIT_TEST -DBVAR_NOT_LINK_DEFAULT_VARIABLES")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUNIT_TEST")
elseif(NOT DEBUG)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG")
7
endif()
8 9

include_directories(${CMAKE_CURRENT_BINARY_DIR})
10
include_directories(${PROJECT_SOURCE_DIR}/src)
11

zhujiashun's avatar
zhujiashun committed
12 13
add_library(BUTIL_LIB OBJECT ${BUTIL_SOURCES})
add_library(OBJ_LIB OBJECT ${SOURCES})
14

15
# shared library needs POSITION_INDEPENDENT_CODE
16
set_property(TARGET ${OBJ_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1)
zhujiashun's avatar
zhujiashun committed
17
set_property(TARGET ${BUTIL_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1)
18

19 20 21 22 23 24
add_library(brpc-shared SHARED $<TARGET_OBJECTS:BUTIL_LIB> 
                               $<TARGET_OBJECTS:OBJ_LIB>
                               $<TARGET_OBJECTS:PROTO_LIB>)
add_library(brpc-static STATIC $<TARGET_OBJECTS:BUTIL_LIB>
                               $<TARGET_OBJECTS:OBJ_LIB>
                               $<TARGET_OBJECTS:PROTO_LIB>)
25

26
target_link_libraries(brpc-shared ${DYNAMIC_LIB})
27

28
if(BRPC_WITH_GLOG)
29
    target_link_libraries(brpc-shared ${GLOG_LIB})
30
endif()
31

32 33 34 35 36
if(BRPC_WITH_THRIFT)
    target_link_libraries(brpc-shared thrift)
    target_link_libraries(brpc-static thrift)
endif()

37 38 39
SET_TARGET_PROPERTIES(brpc-static PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1)
SET_TARGET_PROPERTIES(brpc-shared PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1)

40
# for protoc-gen-mcpack
41
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/output/bin)
42 43
    
set(protoc_gen_mcpack_SOURCES
44
    ${PROJECT_SOURCE_DIR}/src/mcpack2pb/generator.cpp
45 46
 )
add_executable(protoc-gen-mcpack ${protoc_gen_mcpack_SOURCES})
47
target_link_libraries(protoc-gen-mcpack brpc-shared)
48 49
    
#install directory
50
install(TARGETS brpc-shared
51 52 53
        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
54
        )
55

56
install(TARGETS brpc-static
57 58 59
        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
60
        )