2023-10-23 23:07:00 +08:00
|
|
|
# 生成程序的位置
|
|
|
|
|
SET(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")
|
|
|
|
|
|
|
|
|
|
# 源码目录
|
|
|
|
|
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src MAIN_SRC)
|
2023-11-01 10:48:02 +08:00
|
|
|
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src/common COMMON)
|
2023-11-06 12:38:30 +08:00
|
|
|
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src/common/utils UTILS)
|
|
|
|
|
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src/common/hts HTS)
|
2023-10-23 23:07:00 +08:00
|
|
|
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src/sam SAM_SRC)
|
|
|
|
|
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src/sam/markdups SAM_MARKDUPS_SRC)
|
|
|
|
|
|
|
|
|
|
# 头文件目录
|
|
|
|
|
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/src")
|
|
|
|
|
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/lib")
|
|
|
|
|
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/lib/htslib")
|
|
|
|
|
|
|
|
|
|
# 链接库位置
|
|
|
|
|
LINK_DIRECTORIES("${PROJECT_SOURCE_DIR}/lib/htslib")
|
|
|
|
|
|
|
|
|
|
# 编译生成的程序名称
|
|
|
|
|
set(PG_NAME "picard_cpp")
|
|
|
|
|
|
|
|
|
|
# 为程序添加依赖关系
|
2023-11-06 12:38:30 +08:00
|
|
|
ADD_EXECUTABLE(${PG_NAME} ${MAIN_SRC} ${COMMON} ${UTILS} ${HTS}
|
|
|
|
|
${SAM_SRC} ${SAM_MARKDUPS_SRC})
|
2023-10-23 23:07:00 +08:00
|
|
|
|
|
|
|
|
# 链接库
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PG_NAME} libhts.a)
|
|
|
|
|
|
|
|
|
|
# 检测系统是否包含必需的库
|
2023-11-06 12:38:30 +08:00
|
|
|
|
|
|
|
|
# pthread库
|
2023-10-23 23:07:00 +08:00
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
|
if(THREADS_HAVE_PTHREAD_ARG)
|
|
|
|
|
set_property(TARGET ${PG_NAME} PROPERTY COMPILE_OPTIONS "-pthread")
|
|
|
|
|
set_property(TARGET ${PG_NAME} PROPERTY INTERFACE_COMPILE_OPTIONS "-pthread")
|
|
|
|
|
endif()
|
|
|
|
|
if(CMAKE_THREAD_LIBS_INIT)
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PG_NAME} "${CMAKE_THREAD_LIBS_INIT}")
|
2023-11-06 12:38:30 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# bzip2库
|
|
|
|
|
find_package(BZip2 REQUIRED)
|
|
|
|
|
if(BZip2_FOUND)
|
|
|
|
|
INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR})
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PG_NAME} ${BZIP2_LIBRARIES})
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#openmp
|
|
|
|
|
find_package(OpenMP)
|
|
|
|
|
if(OPENMP_FOUND)
|
|
|
|
|
set_target_properties(${PG_NAME} PROPERTIES COMPILE_OPTIONS ${OpenMP_CXX_FLAGS})
|
|
|
|
|
target_link_libraries(${PG_NAME} ${OpenMP_CXX_FLAGS})
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# 链接库
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PG_NAME} -lz)
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PG_NAME} -lm)
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PG_NAME} -llzma)
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PG_NAME} -lbz2)
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PG_NAME} -lcurl)
|
|
|
|
|
|
|
|
|
|
# 安装文件夹设置
|
|
|
|
|
INSTALL(TARGETS ${PG_NAME}
|
|
|
|
|
RUNTIME DESTINATION bin
|
|
|
|
|
LIBRARY DESTINATION lib
|
|
|
|
|
ARCHIVE DESTINATION libstatic
|
|
|
|
|
)
|