配置了cmake和调试环境

This commit is contained in:
zzh 2023-10-23 23:07:00 +08:00
parent a2a9067ec5
commit 95b0f685ff
9 changed files with 194 additions and 0 deletions

2
.gitignore vendored
View File

@ -32,3 +32,5 @@
*.out
*.app
lib/
build/

20
.vscode/launch.json vendored 100644
View File

@ -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}", //
}
]
}

5
.vscode/settings.json vendored 100644
View File

@ -0,0 +1,5 @@
{
"files.associations": {
"cstring": "cpp"
}
}

27
.vscode/tasks.json vendored 100644
View File

@ -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
}
}
]
}

View File

@ -0,0 +1,3 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
project(picard_cpp)
ADD_SUBDIRECTORY(src)

View File

@ -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()

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}