Skip to content

Commit 3b31926

Browse files
alandefreitasvinniefalco
authored andcommitted
build: integrate duktape
close #235
1 parent 616773e commit 3b31926

File tree

5 files changed

+5247
-2
lines changed

5 files changed

+5247
-2
lines changed

CMakeLists.txt

+33-1
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,44 @@ endif()
7474
#-------------------------------------------------
7575

7676
set(CMAKE_FOLDER Dependencies)
77+
78+
# LLVM
7779
find_package(LLVM REQUIRED CONFIG)
7880
find_package(Clang REQUIRED CONFIG)
7981
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
8082
include(HandleLLVMOptions)
8183
add_definitions(${LLVM_DEFINITIONS})
8284
llvm_map_components_to_libnames(llvm_libs all)
85+
86+
# Duktape
87+
if(NOT DEFINED DUKTAPE_SOURCE_ROOT)
88+
set(DUKTAPE_SOURCE_ROOT $ENV{DUKTAPE_SOURCE_ROOT})
89+
endif()
90+
if (NOT DUKTAPE_SOURCE_ROOT)
91+
include(FetchContent)
92+
if (POLICY CMP0135)
93+
cmake_policy(SET CMP0135 NEW)
94+
endif()
95+
FetchContent_Declare(
96+
duktape
97+
URL https://github.com/svaarala/duktape/releases/download/v2.7.0/duktape-2.7.0.tar.xz
98+
)
99+
FetchContent_GetProperties(duktape)
100+
if(NOT duktape_POPULATED)
101+
FetchContent_Populate(duktape)
102+
set(DUKTAPE_SOURCE_ROOT ${duktape_SOURCE_DIR})
103+
endif()
104+
endif()
105+
add_library(duktape ${DUKTAPE_SOURCE_ROOT}/src/duktape.c ${DUKTAPE_SOURCE_ROOT}/src/duktape.h)
106+
target_include_directories(duktape PUBLIC ${DUKTAPE_SOURCE_ROOT}/src)
107+
add_library(duktape::duktape ALIAS duktape)
108+
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
109+
target_compile_options(duktape PRIVATE -w)
110+
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
111+
target_compile_options(duktape PRIVATE /w)
112+
endif()
113+
114+
# fmt
83115
unset(CMAKE_FOLDER)
84116
find_package(fmt REQUIRED CONFIG)
85117

@@ -133,7 +165,7 @@ endif()
133165
target_include_directories(mrdox SYSTEM PUBLIC ${CLANG_INCLUDE_DIRS})
134166

135167
# fmt
136-
target_link_libraries(mrdox PUBLIC fmt::fmt)
168+
target_link_libraries(mrdox PUBLIC fmt::fmt duktape::duktape)
137169

138170
# Windows, Win64
139171
if (WIN32)

include/mrdox/Metadata/Interface.hpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ makeInterface(
9696
Corpus const& corpus)
9797
{
9898
Interface I;
99-
return makeInterface(I, Derived, corpus);
99+
makeInterface(I, Derived, corpus);
100+
return I;
100101
}
101102

102103
} // mrdox

source/-adoc/AdocWriter.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ struct llvm::yaml::MappingTraits<
6666
{
6767
auto& opt= opt_.opt;
6868
io.mapOptional("safe-names", opt.safe_names);
69+
io.mapOptional("template-dir", opt.template_dir);
6970
}
7071
};
7172

source/-adoc/AdocWriter.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class AdocWriter
4646
struct Options
4747
{
4848
bool safe_names = false;
49+
std::string template_dir;
4950
};
5051

5152
struct Key;

0 commit comments

Comments
 (0)