]> git.donarmstrong.com Git - bamtools.git/blob - src/api/CMakeLists.txt
7306f568f3a1b273f9ef1e4a4701fc1e4a37725d
[bamtools.git] / src / api / CMakeLists.txt
1 # ==========================
2 # BamTools CMakeLists.txt
3 # (c) 2010 Derek Barnett
4 #
5 # src/api/
6 # ==========================
7
8 # list include paths
9 include_directories( ${BamTools_SOURCE_DIR}/src )
10
11 # add compiler definitions 
12 add_definitions( -DBAMTOOLS_API_LIBRARY ) # (for proper exporting of library symbols)
13 add_definitions( -fPIC ) # (attempt to force PIC compiling on CentOS, not being set on shared libs by CMake)
14
15 # list of all BamTools API source (.cpp) files
16 set( BamToolsAPISources
17         BamAlignment.cpp
18         BamMultiReader.cpp
19         BamReader.cpp
20         BamWriter.cpp
21         SamHeader.cpp
22         SamProgram.cpp
23         SamProgramChain.cpp
24         SamReadGroup.cpp
25         SamReadGroupDictionary.cpp
26         SamSequence.cpp
27         SamSequenceDictionary.cpp
28         internal/BamHeader_p.cpp
29         internal/BamIndexFactory_p.cpp
30         internal/BamMultiReader_p.cpp
31         internal/BamRandomAccessController_p.cpp
32         internal/BamReader_p.cpp
33         internal/BamStandardIndex_p.cpp
34         internal/BamToolsIndex_p.cpp
35         internal/BamWriter_p.cpp
36         internal/BgzfStream_p.cpp
37         internal/SamFormatParser_p.cpp
38         internal/SamFormatPrinter_p.cpp
39         internal/SamHeaderValidator_p.cpp
40 )
41
42 # create main BamTools API shared library
43 add_library( BamTools SHARED ${BamToolsAPISources} )
44 set_target_properties( BamTools PROPERTIES SOVERSION "1.0.2" )
45 set_target_properties( BamTools PROPERTIES OUTPUT_NAME "bamtools" )
46
47 # create main BamTools API static library
48 add_library( BamTools-static STATIC ${BamToolsAPISources} )
49 set_target_properties( BamTools-static PROPERTIES OUTPUT_NAME "bamtools" )
50 set_target_properties( BamTools-static PROPERTIES PREFIX "lib" )
51
52 # link libraries with zlib automatically
53 target_link_libraries( BamTools z )
54 target_link_libraries( BamTools-static z )
55
56 # set library install destinations
57 install( TARGETS BamTools LIBRARY DESTINATION "lib/bamtools" RUNTIME DESTINATION "bin")
58 install( TARGETS BamTools-static ARCHIVE DESTINATION "lib/bamtools")
59
60 # export API headers
61 include(../ExportHeader.cmake)
62 set(ApiIncludeDir "api")
63 ExportHeader(APIHeaders api_global.h             ${ApiIncludeDir})
64 ExportHeader(APIHeaders BamAlgorithms.h           ${ApiIncludeDir})
65 ExportHeader(APIHeaders BamAlignment.h           ${ApiIncludeDir})
66 ExportHeader(APIHeaders BamAux.h                 ${ApiIncludeDir})
67 ExportHeader(APIHeaders BamConstants.h           ${ApiIncludeDir})
68 ExportHeader(APIHeaders BamIndex.h               ${ApiIncludeDir})
69 ExportHeader(APIHeaders BamMultiReader.h         ${ApiIncludeDir})
70 ExportHeader(APIHeaders BamReader.h              ${ApiIncludeDir})
71 ExportHeader(APIHeaders BamWriter.h              ${ApiIncludeDir})
72 ExportHeader(APIHeaders SamConstants.h           ${ApiIncludeDir})
73 ExportHeader(APIHeaders SamHeader.h              ${ApiIncludeDir})
74 ExportHeader(APIHeaders SamProgram.h             ${ApiIncludeDir})
75 ExportHeader(APIHeaders SamProgramChain.h        ${ApiIncludeDir})
76 ExportHeader(APIHeaders SamReadGroup.h           ${ApiIncludeDir})
77 ExportHeader(APIHeaders SamReadGroupDictionary.h ${ApiIncludeDir})
78 ExportHeader(APIHeaders SamSequence.h            ${ApiIncludeDir})
79 ExportHeader(APIHeaders SamSequenceDictionary.h  ${ApiIncludeDir})
80
81 set(AlgorithmsIncludeDir "api/algorithms")
82 ExportHeader(AlgorithmsHeaders algorithms/Sort.h ${AlgorithmsIncludeDir})