summaryrefslogtreecommitdiff
path: root/indra/llfilesystem/CMakeLists.txt
blob: 306b483097532664bc94465d94da13d83c53e310 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# -*- cmake -*-

project(llfilesystem)

include(00-Common)
include(LLCommon)
include(SQLite)
include(UnixInstall)

include_directories(
    ${LLCOMMON_INCLUDE_DIRS}
    ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
    ${SQLITE_INCLUDE_DIR}
    )

set(llfilesystem_SOURCE_FILES
    lldir.cpp
    lldiriterator.cpp
    lllfsthread.cpp
    lldiskcache.cpp
    )

set(llfilesystem_HEADER_FILES
    CMakeLists.txt

    lldir.h
    lldirguard.h
    lldiriterator.h
    lllfsthread.h
    lldiskcache.h
    )

if (DARWIN)
  LIST(APPEND llfilesystem_SOURCE_FILES lldir_utils_objc.mm)
  LIST(APPEND llfilesystem_SOURCE_FILES lldir_utils_objc.h)
  LIST(APPEND llfilesystem_SOURCE_FILES lldir_mac.cpp)
  LIST(APPEND llfilesystem_HEADER_FILES lldir_mac.h)
endif (DARWIN)

if (LINUX)
  LIST(APPEND llfilesystem_SOURCE_FILES lldir_linux.cpp)
  LIST(APPEND llfilesystem_HEADER_FILES lldir_linux.h)

  if (INSTALL)
    set_source_files_properties(lldir_linux.cpp
                                PROPERTIES COMPILE_FLAGS
                                "-DAPP_RO_DATA_DIR=\\\"${APP_SHARE_DIR}\\\""
                                )
  endif (INSTALL)
endif (LINUX)

if (WINDOWS)
  LIST(APPEND llfilesystem_SOURCE_FILES lldir_win32.cpp)
  LIST(APPEND llfilesystem_HEADER_FILES lldir_win32.h)
endif (WINDOWS)

set_source_files_properties(${llfilesystem_HEADER_FILES}
                            PROPERTIES HEADER_FILE_ONLY TRUE)

list(APPEND llfilesystem_SOURCE_FILES ${llfilesystem_HEADER_FILES})

add_library (llfilesystem ${llfilesystem_SOURCE_FILES})

set(cache_BOOST_LIBRARIES
    ${BOOST_FILESYSTEM_LIBRARY}
    ${BOOST_SYSTEM_LIBRARY}
    )

target_link_libraries(llfilesystem
    ${LLCOMMON_LIBRARIES}
    ${cache_BOOST_LIBRARIES}
    ${SQLITE_LIBRARIES}
    )

if (DARWIN)
  include(CMakeFindFrameworks)
  find_library(COCOA_LIBRARY Cocoa)
  target_link_libraries(llfilesystem ${COCOA_LIBRARY})
endif (DARWIN)


# Add tests
if (LL_TESTS)
    include(LLAddBuildTest)
    # UNIT TESTS
    SET(llfilesystem_TEST_SOURCE_FILES
    lldiriterator.cpp
    )

    set_source_files_properties(lldiriterator.cpp
    PROPERTIES
    LL_TEST_ADDITIONAL_LIBRARIES "${cache_BOOST_LIBRARIES}"
    )
    LL_ADD_PROJECT_UNIT_TESTS(llfilesystem "${llfilesystem_TEST_SOURCE_FILES}")

    # INTEGRATION TESTS
    set(test_libs llmath llcommon llfilesystem ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES})

    # TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests.
    LL_ADD_INTEGRATION_TEST(lldir "" "${test_libs}")
endif (LL_TESTS)