Skip to content

Commit 0e0803f

Browse files
committed
Initial selfhosted setup. Fix related bugs.
1 parent 8f47c5d commit 0e0803f

23 files changed

+444
-191
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
/build*
1111
/win*
1212
cppan
13+
.cppan*
1314

1415
/packages
1516

CMakeLists.txt

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,27 @@ endif()
5151
set(output_dir ${CMAKE_BINARY_DIR}/bin)
5252
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${output_dir})
5353

54-
#add_subdirectory(cppan)
55-
56-
set(Boost_USE_STATIC_LIBS ON)
54+
if(EXISTS ${PROJECT_SOURCE_DIR}/.cppan AND USE_CPPAN_BUILD)
55+
set(CPPAN_BUILD_SHARED_LIBS 1)
56+
add_subdirectory(.cppan)
57+
endif()
5758

58-
find_package(Boost 1.60 REQUIRED filesystem program_options log system thread date_time)
5959
find_package(BISON 3.0 REQUIRED)
6060
find_package(FLEX REQUIRED)
6161

62-
if (NOT WIN32)
63-
if (NOT APPLE)
64-
find_package(LibArchive REQUIRED)
62+
if (NOT CPPAN_BUILD)
63+
set(Boost_USE_STATIC_LIBS ON)
64+
65+
find_package(Boost 1.60 REQUIRED filesystem program_options log system thread date_time)
66+
67+
if (NOT WIN32)
68+
if (NOT APPLE)
69+
find_package(LibArchive REQUIRED)
70+
endif()
71+
find_package(CURL REQUIRED)
72+
find_package(ZLIB REQUIRED)
73+
find_package(OpenSSL REQUIRED)
6574
endif()
66-
find_package(CURL REQUIRED)
67-
find_package(ZLIB REQUIRED)
68-
find_package(OpenSSL REQUIRED)
6975
endif()
7076

7177
################################################################################
@@ -102,15 +108,17 @@ endif()
102108
#
103109
################################################################################
104110

105-
include_directories(${Boost_INCLUDE_DIRS})
106-
107-
link_directories(${Boost_LIBRARY_DIRS})
111+
if (NOT CPPAN_BUILD)
112+
include_directories(${Boost_INCLUDE_DIRS})
113+
link_directories(${Boost_LIBRARY_DIRS})
108114

109115
########################################
110116
# subdirectories
111117
########################################
112118

113-
add_subdirectory(dep)
119+
add_subdirectory(dep)
120+
endif()
121+
114122
add_subdirectory(src)
115123

116124
###############################################################################

cppan.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,13 @@
1+
local_settings:
2+
storage_dir: .cppan_storage
3+
14
dependencies:
2-
pvt.cppan.demo.nlohmann.json: 2
5+
pvt.cppan.demo.boost.filesystem: 1
6+
pvt.cppan.demo.boost.log: 1
7+
pvt.cppan.demo.boost.optional: 1
8+
pvt.cppan.demo.boost.property_tree: 1
9+
pvt.cppan.demo.badger.curl.libcurl: 7
10+
pvt.cppan.demo.libarchive.libarchive: 3
11+
pvt.cppan.demo.openssl.crypto: 1
12+
pvt.cppan.demo.yaml_cpp: master
13+
pvt.cppan.demo.sqlite3: 3

src/CMakeLists.txt

Lines changed: 61 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,32 @@ endif()
1010

1111
add_definitions(-DUSE_LOGGER=1)
1212

13-
if (WIN32)
14-
add_definitions(-DLIBARCHIVE_STATIC)
15-
include_directories(${PROJECT_SOURCE_DIR}/dep/libarchive)
16-
include_directories(${PROJECT_SOURCE_DIR}/dep/libressl/include)
17-
18-
add_definitions(-DCURL_STATICLIB=1)
19-
include_directories(${PROJECT_SOURCE_DIR}/dep/curl/include)
20-
include_directories(${PROJECT_BINARY_DIR}/dep/curl/include)
21-
include_directories(${PROJECT_BINARY_DIR}/dep/curl/include/curl)
22-
else()
23-
include_directories(${LibArchive_INCLUDE_DIRS})
24-
include_directories(${CURL_INCLUDE_DIRS})
25-
include_directories(${OPENSSL_INCLUDE_DIR})
13+
if (NOT CPPAN_BUILD)
14+
if (WIN32)
15+
add_definitions(-DLIBARCHIVE_STATIC)
16+
include_directories(${PROJECT_SOURCE_DIR}/dep/libarchive)
17+
include_directories(${PROJECT_SOURCE_DIR}/dep/libressl/include)
18+
19+
add_definitions(-DCURL_STATICLIB=1)
20+
include_directories(${PROJECT_SOURCE_DIR}/dep/curl/include)
21+
include_directories(${PROJECT_BINARY_DIR}/dep/curl/include)
22+
include_directories(${PROJECT_BINARY_DIR}/dep/curl/include/curl)
23+
else()
24+
include_directories(${LibArchive_INCLUDE_DIRS})
25+
include_directories(${CURL_INCLUDE_DIRS})
26+
include_directories(${OPENSSL_INCLUDE_DIR})
27+
endif()
28+
29+
if (APPLE)
30+
add_definitions(-DLIBARCHIVE_STATIC)
31+
include_directories(${PROJECT_SOURCE_DIR}/dep/libarchive/libarchive)
32+
endif()
33+
34+
include_directories(${PROJECT_SOURCE_DIR}/dep/yaml-cpp/include)
35+
include_directories(${PROJECT_SOURCE_DIR}/dep/sqlite3)
2636
endif()
2737

28-
if (APPLE)
29-
add_definitions(-DLIBARCHIVE_STATIC)
30-
include_directories(${PROJECT_SOURCE_DIR}/dep/libarchive/libarchive)
31-
endif()
32-
33-
include_directories(${PROJECT_SOURCE_DIR}/dep/yaml-cpp/include)
34-
include_directories(${PROJECT_SOURCE_DIR}/dep/sqlite3)
38+
# process is still in deps
3539
include_directories(${PROJECT_SOURCE_DIR}/dep/process)
3640

3741
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
@@ -55,7 +59,11 @@ set(inserter_src
5559
inserter.cpp
5660
)
5761
add_executable(inserter ${inserter_src})
58-
target_link_libraries(inserter ${Boost_LIBRARIES})
62+
if (NOT CPPAN_BUILD)
63+
target_link_libraries(inserter ${Boost_LIBRARIES})
64+
else()
65+
target_link_libraries(inserter pvt.cppan.demo.boost.filesystem)
66+
endif()
5967

6068
########################################
6169
# common
@@ -175,35 +183,43 @@ target_include_directories(common
175183
target_link_libraries(common
176184
context
177185
bazel_parser
178-
sqlite3
179186
extract_comments
180187
)
181-
if (WIN32)
182-
target_link_libraries(common
183-
archive_static
184-
libcurl
185-
crypto
186-
yaml-cpp
187-
${Boost_LIBRARIES}
188-
)
189-
elseif (APPLE)
190-
target_link_libraries(common
191-
yaml-cpp
192-
archive_static
193-
${CURL_LIBRARIES}
194-
${OPENSSL_LIBRARIES}
195-
${Boost_LIBRARIES}
196-
)
188+
189+
if (NOT CPPAN_BUILD)
190+
if (WIN32)
191+
target_link_libraries(common
192+
archive_static
193+
libcurl
194+
crypto
195+
sqlite3
196+
yaml-cpp
197+
${Boost_LIBRARIES}
198+
)
199+
elseif (APPLE)
200+
target_link_libraries(common
201+
yaml-cpp
202+
archive_static
203+
sqlite3
204+
${CURL_LIBRARIES}
205+
${OPENSSL_LIBRARIES}
206+
${Boost_LIBRARIES}
207+
)
208+
else()
209+
target_link_libraries(common
210+
yaml-cpp
211+
sqlite3
212+
${LibArchive_LIBRARIES}
213+
${CURL_LIBRARIES}
214+
${OPENSSL_LIBRARIES}
215+
${Boost_LIBRARIES}
216+
)
217+
endif()
197218
else()
198-
target_link_libraries(common
199-
yaml-cpp
200-
${LibArchive_LIBRARIES}
201-
${CURL_LIBRARIES}
202-
${OPENSSL_LIBRARIES}
203-
${Boost_LIBRARIES}
204-
)
219+
target_link_libraries(common cppan)
205220
endif()
206221

222+
207223
################################################################################
208224

209225
add_subdirectory(autotools)

src/checks.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ const std::map<int, Check::Information> check_information{
5252
{ Check::Library, "check_library_exists", "find_library", "library", "libraries" } },
5353

5454
{ Check::LibraryFunction,
55-
{ Check::LibraryFunction, "check_library_function", "check_library_exists", " library function", "functions" } },
55+
{ Check::LibraryFunction, "check_library_function", "check_library_exists", "library function", "functions" } },
5656

5757
{ Check::Symbol,
5858
{ Check::Symbol, "check_symbol_exists", "check_cxx_symbol_exists", "symbol", "symbols" } },
@@ -142,7 +142,7 @@ void Checks::load(const yaml &root)
142142
{
143143
auto f = v["function"].template as<String>();
144144
auto lib = v["library"].template as<String>();
145-
auto p = this->addCheck<CheckInclude>(f, lib);
145+
auto p = this->addCheck<CheckLibraryFunction>(f, lib);
146146
}
147147
});
148148

src/client/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,15 @@ target_link_libraries(client
3131
autotools
3232
common
3333
fix_imports
34+
)
35+
36+
if (NOT CPPAN_BUILD)
37+
target_link_libraries(client
3438
yaml-cpp
3539
${Boost_LIBRARIES}
3640
)
41+
endif()
42+
3743
set_target_properties(client PROPERTIES OUTPUT_NAME cppan)
3844
if (WIN32)
3945
set_target_properties(client PROPERTIES OUTPUT_NAME_DEBUG cppand)

src/client/main.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,15 @@ void init()
523523
initLogger("info", "", true);
524524

525525
// initialize CPPAN structures, do not remove
526-
Config::get_user_config();
526+
auto c = Config::get_user_config();
527+
try
528+
{
529+
c.load_current_config(); // for storage dir
530+
}
531+
catch (...)
532+
{
533+
// ignore everything
534+
}
527535

528536
// initialize internal db
529537
auto &sdb = getServiceDatabase();

0 commit comments

Comments
 (0)