summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
blob: a761acb4c97bbcaaff9a5be01083b74d285dcdca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
project(pcitool)

set(PCILIB_VERSION "0.1.0")
set(PCILIB_ABI_VERSION "1")

cmake_minimum_required(VERSION 2.6)

set(DISABLE_PCITOOL FALSE CACHE BOOL "Build only the library") 


find_package(PkgConfig REQUIRED)
find_package(Threads REQUIRED)

#Check in sibling directory
pkg_check_modules(UFODECODE ufodecode>=0.2 REQUIRED)

if (NOT DISABLE_PCITOOL)
    pkg_check_modules(FASTWRITER fastwriter REQUIRED)
endif (NOT DISABLE_PCITOOL)

set(HEADERS pcilib.h pci.h register.h kmem.h irq.h dma.h event.h default.h tools.h error.h)
add_definitions("-fPIC --std=c99 -Wall -O2")
#add_definitions("-fPIC --std=c99 -Wall -O2 -pthread")

add_subdirectory(dma)
add_subdirectory(ipecamera)
add_subdirectory(kapture)
add_subdirectory(pcitool)
add_subdirectory(apps)

include_directories(
    ${FASTWRITER_INCLUDE_DIRS}
)

link_directories(
    ${FASTWRITER_LIBRARY_DIRS}
    ${UFODECODE_LIBRARY_DIRS}
)

add_library(pcilib SHARED pci.c register.c kmem.c irq.c dma.c event.c default.c tools.c error.c) 
target_link_libraries(pcilib dma ipecamera kapture ${CMAKE_THREAD_LIBS_INIT} ${UFODECODE_LIBRARIES} )
add_dependencies(pcilib dma ipecamera)

set_target_properties(pcilib PROPERTIES
    VERSION ${PCILIB_VERSION}
    SOVERSION ${PCILIB_ABI_VERSION}
#    LINK_FLAGS "-pthread"
#    LINK_FLAGS "-pthread -Wl,--whole-archive,dma/libdma.a,ipecamera/libipecamera.a,--no-whole-archive"
)

if (NOT DISABLE_PCITOOL)
    add_executable(pci cli.c)
    add_dependencies(pci pcitool)
    target_link_libraries(pci pcilib pcitool ${FASTWRITER_LIBRARIES})
    set_target_properties(pci PROPERTIES
	LINK_FLAGS ${CMAKE_THREAD_LIBS_INIT}
    )
endif (NOT DISABLE_PCITOOL)

#set_target_properties(pci PROPERTIES
#    LINK_FLAGS "-Wl,pcitool/libpcitool.a"
#)

if(NOT DEFINED BIN_INSTALL_DIR)
    set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
endif(NOT DEFINED BIN_INSTALL_DIR)


install(TARGETS pcilib
    LIBRARY DESTINATION lib${LIB_SUFFIX}
)

if (NOT DISABLE_PCITOOL)
    install(TARGETS pci
	DESTINATION ${BIN_INSTALL_DIR}
    )
endif (NOT DISABLE_PCITOOL)

install(FILES pcilib.h
    DESTINATION include
)