]> git.donarmstrong.com Git - bamtools.git/blob - src/api/CMakeLists.txt
Brought API up to compliance with recent SAM Format Spec (v1.4-r962)
[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
14 # list of all BamTools API source (.cpp) files
15 set( BamToolsAPISources
16         BamAlignment.cpp
17         BamMultiReader.cpp
18         BamReader.cpp
19         BamWriter.cpp
20         SamHeader.cpp
21         SamProgram.cpp
22         SamProgramChain.cpp
23         SamReadGroup.cpp
24         SamReadGroupDictionary.cpp
25         SamSequence.cpp
26         SamSequenceDictionary.cpp
27         internal/BamHeader_p.cpp
28         internal/BamIndexFactory_p.cpp
29         internal/BamMultiReader_p.cpp
30         internal/BamRandomAccessController_p.cpp
31         internal/BamReader_p.cpp
32         internal/BamStandardIndex_p.cpp
33         internal/BamToolsIndex_p.cpp
34         internal/BamWriter_p.cpp
35         internal/BgzfStream_p.cpp
36         internal/SamFormatParser_p.cpp
37         internal/SamFormatPrinter_p.cpp
38         internal/SamHeaderValidator_p.cpp
39 )
40
41 # create main BamTools API shared library
42 add_library( BamTools SHARED ${BamToolsAPISources} )
43 set_target_properties( BamTools PROPERTIES SOVERSION "1.0.1" )
44 set_target_properties( BamTools PROPERTIES OUTPUT_NAME "bamtools" )
45
46 # create main BamTools API static library
47 add_library( BamTools-static STATIC ${BamToolsAPISources} )
48 set_target_properties( BamTools-static PROPERTIES OUTPUT_NAME "bamtools" )
49 set_target_properties( BamTools-static PROPERTIES PREFIX "lib" )
50
51 # link libraries with zlib automatically
52 target_link_libraries( BamTools z )
53 target_link_libraries( BamTools-static z )
54
55 # set library install destinations
56 install( TARGETS BamTools LIBRARY DESTINATION "lib/bamtools")
57 install( TARGETS BamTools-static ARCHIVE DESTINATION "lib/bamtools")
58
59 # export API headers
60 include(../ExportHeader.cmake)
61 set(ApiIncludeDir "api")
62 ExportHeader(APIHeaders api_global.h             ${ApiIncludeDir})
63 ExportHeader(APIHeaders BamAlignment.h           ${ApiIncludeDir})
64 ExportHeader(APIHeaders BamAux.h                 ${ApiIncludeDir})
65 ExportHeader(APIHeaders BamConstants.h           ${ApiIncludeDir})
66 ExportHeader(APIHeaders BamIndex.h               ${ApiIncludeDir})
67 ExportHeader(APIHeaders BamMultiReader.h         ${ApiIncludeDir})
68 ExportHeader(APIHeaders BamReader.h              ${ApiIncludeDir})
69 ExportHeader(APIHeaders BamWriter.h              ${ApiIncludeDir})
70 ExportHeader(APIHeaders SamConstants.h           ${ApiIncludeDir})
71 ExportHeader(APIHeaders SamHeader.h              ${ApiIncludeDir})
72 ExportHeader(APIHeaders SamProgram.h             ${ApiIncludeDir})
73 ExportHeader(APIHeaders SamProgramChain.h        ${ApiIncludeDir})
74 ExportHeader(APIHeaders SamReadGroup.h           ${ApiIncludeDir})
75 ExportHeader(APIHeaders SamReadGroupDictionary.h ${ApiIncludeDir})
76 ExportHeader(APIHeaders SamSequence.h            ${ApiIncludeDir})
77 ExportHeader(APIHeaders SamSequenceDictionary.h  ${ApiIncludeDir})