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