配置了cmake和调试环境
This commit is contained in:
parent
a2a9067ec5
commit
95b0f685ff
|
|
@ -32,3 +32,5 @@
|
||||||
*.out
|
*.out
|
||||||
*.app
|
*.app
|
||||||
|
|
||||||
|
lib/
|
||||||
|
build/
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
// 使用 IntelliSense 了解相关属性。
|
||||||
|
// 悬停以查看现有属性的描述。
|
||||||
|
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "picard_cpp",
|
||||||
|
"preLaunchTask": "BuildDebug",
|
||||||
|
// "preLaunchTask": "BuildRelease",
|
||||||
|
"type": "cppdbg",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceRoot}/build/bin/picard_cpp",
|
||||||
|
"args": [
|
||||||
|
"MarkDuplicates"
|
||||||
|
],
|
||||||
|
"cwd": "${workspaceFolder}", // 当前工作路径:当前文件所在的工作空间
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"cstring": "cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
|
// for the documentation about the tasks.json format
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "BuildDebug",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "cd build; cmake .. -DCMAKE_BUILD_TYPE=Debug; make -j 8",
|
||||||
|
"problemMatcher": [],
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "BuildRelease",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "cd build; cmake .. -DCMAKE_BUILD_TYPE=Release; make -j 8",
|
||||||
|
"problemMatcher": [],
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
|
||||||
|
project(picard_cpp)
|
||||||
|
ADD_SUBDIRECTORY(src)
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
# 生成程序的位置
|
||||||
|
SET(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")
|
||||||
|
|
||||||
|
# 源码目录
|
||||||
|
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src MAIN_SRC)
|
||||||
|
# AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src/common COMMON)
|
||||||
|
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")
|
||||||
|
|
||||||
|
# 为程序添加依赖关系
|
||||||
|
ADD_EXECUTABLE(${PG_NAME} ${MAIN_SRC} ${SAM_SRC} ${SAM_MARKDUPS_SRC})
|
||||||
|
|
||||||
|
# 链接库
|
||||||
|
TARGET_LINK_LIBRARIES(${PG_NAME} libhts.a)
|
||||||
|
|
||||||
|
# 检测系统是否包含必需的库
|
||||||
|
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}")
|
||||||
|
endif()
|
||||||
60
src/main.cpp
60
src/main.cpp
|
|
@ -0,0 +1,60 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstring>
|
||||||
|
#include <htslib/sam.h>
|
||||||
|
#include "module.h"
|
||||||
|
|
||||||
|
/* 版本信息 */
|
||||||
|
const char *version()
|
||||||
|
{
|
||||||
|
return PICARD_CPP_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 使用说明 */
|
||||||
|
static void usage(FILE *fp)
|
||||||
|
{
|
||||||
|
fprintf(fp,
|
||||||
|
"\n"
|
||||||
|
"Program: picard_cpp (A cpp implementation for picard.)\n"
|
||||||
|
"Version: %s \n\n",
|
||||||
|
version());
|
||||||
|
fprintf(fp,
|
||||||
|
"Usage: picard_cpp <command> [options]\n"
|
||||||
|
"\n"
|
||||||
|
"Commands:\n"
|
||||||
|
" MarkDuplicates mark duplicates for bam file.\n"
|
||||||
|
"\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
usage(stderr);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strcmp(argv[1], "help") == 0 || strcmp(argv[1], "--help") == 0)
|
||||||
|
{
|
||||||
|
if (argc == 2)
|
||||||
|
{
|
||||||
|
usage(stdout);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
argv++;
|
||||||
|
argc = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
if (strcmp(argv[1], "MarkDuplicates") == 0)
|
||||||
|
ret = MarkDuplicates(argc - 1, argv + 1);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr, "\n[Error]: unrecognized command '%s'\n\n", argv[1]);
|
||||||
|
usage(stdout);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
16
src/module.h
16
src/module.h
|
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
Description: picard中各种方法模块函数的前向声明
|
||||||
|
|
||||||
|
Copyright : All right reserved by NCIC.ICT
|
||||||
|
|
||||||
|
Author : Zhang Zhonghai
|
||||||
|
Date : 2023/10/23
|
||||||
|
*/
|
||||||
|
#ifndef MODULE_H_
|
||||||
|
#define MODULE_H_
|
||||||
|
|
||||||
|
#define PICARD_CPP_VERSION "v0.1"
|
||||||
|
|
||||||
|
int MarkDuplicates(int argc, char *argv[]);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
/*
|
||||||
|
Description: 标记bam文件中的冗余信息
|
||||||
|
|
||||||
|
Copyright : All right reserved by ICT
|
||||||
|
|
||||||
|
Author : Zhang Zhonghai
|
||||||
|
Date : 2023/10/23
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* mark duplicate 入口
|
||||||
|
*/
|
||||||
|
int MarkDuplicates(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
cout << argc << endl;
|
||||||
|
for (int i = 0; i < argc; ++i) {
|
||||||
|
cout << argv[i] << '\t';
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue