Skip to content

Commit 0018f1e

Browse files
klemens-morgensternvinniefalco
authored andcommitted
mrdox does everything
close #197, close #198
1 parent 2e3ea0b commit 0018f1e

File tree

1 file changed

+20
-32
lines changed

1 file changed

+20
-32
lines changed

CMakeLists.txt

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,12 @@ unset(CMAKE_FOLDER)
8585

8686
#-------------------------------------------------
8787
#
88-
# Library
88+
# Tool
8989
#
9090
#-------------------------------------------------
9191

9292
configure_file(source/lib/api/Version.hpp.in ${PROJECT_BINARY_DIR}/include/mrdox/Version.hpp)
93-
93+
file(GLOB_RECURSE TOOL_SOURCES CONFIGURE_DEPENDS source/tool/*.cpp source/tool/*.hpp)
9494
file(GLOB_RECURSE LIB_INCLUDES CONFIGURE_DEPENDS include/*.hpp)
9595
file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS
9696
source/lib/*.h
@@ -99,9 +99,11 @@ file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS
9999
source/lib/*.natvis
100100
)
101101

102-
add_library(mrdox-api ${MRDOX_LINK_MODE} ${LIB_INCLUDES} ${LIB_SOURCES})
103-
target_compile_features(mrdox-api PUBLIC cxx_std_20)
104-
target_include_directories(mrdox-api
102+
add_executable(mrdox ${TOOL_SOURCES} ${LIB_INCLUDES} ${LIB_SOURCES})
103+
104+
105+
target_compile_features(mrdox PUBLIC cxx_std_20)
106+
target_include_directories(mrdox
105107
PUBLIC
106108
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/>"
107109
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
@@ -110,22 +112,22 @@ target_include_directories(mrdox-api
110112
${PROJECT_BINARY_DIR}/include
111113
)
112114
target_compile_definitions(
113-
mrdox-api
115+
mrdox
114116
PUBLIC
115117
${MRDOX_LINK_MODE_DEFINITION}
116118
PRIVATE
117119
-DMRDOX_LIB
118120
)
119121

120122
# LLVM
121-
target_link_libraries(mrdox-api PUBLIC ${llvm_libs})
122-
target_include_directories(mrdox-api SYSTEM PUBLIC ${LLVM_INCLUDE_DIRS})
123+
target_link_libraries(mrdox PUBLIC ${llvm_libs})
124+
target_include_directories(mrdox SYSTEM PUBLIC ${LLVM_INCLUDE_DIRS})
123125

124126
# Clang
125127
if (CLANG_SIMPLE_LIBS)
126-
target_link_libraries(mrdox-api PUBLIC LLVM clang clang-cpp)
128+
target_link_libraries(mrdox PUBLIC LLVM clang clang-cpp)
127129
else()
128-
target_link_libraries(mrdox-api
130+
target_link_libraries(mrdox
129131
PUBLIC
130132
clangAST
131133
clangBasic
@@ -135,25 +137,25 @@ else()
135137
clangToolingCore
136138
clangToolingInclusions)
137139
endif()
138-
target_include_directories(mrdox-api SYSTEM PUBLIC ${CLANG_INCLUDE_DIRS})
140+
target_include_directories(mrdox SYSTEM PUBLIC ${CLANG_INCLUDE_DIRS})
139141

140142
# Windows, Win64
141143
if (WIN32)
142144
target_compile_definitions(
143-
mrdox-api
145+
mrdox
144146
PUBLIC
145147
-D_WIN32_WINNT=0x0601
146148
-D_CRT_SECURE_NO_WARNINGS
147149
-D_SILENCE_CXX20_CISO646_REMOVED_WARNING
148150
)
149151
get_target_property(LLVM_CONFIGURATION_TYPE LLVMCore IMPORTED_CONFIGURATIONS)
150152
if (LLVM_CONFIGURATION_TYPE STREQUAL RELWITHDEBINFO)
151-
target_compile_definitions(mrdox-api PUBLIC -D_ITERATOR_DEBUG_LEVEL=0)
152-
target_compile_options(mrdox-api PUBLIC /MD)
153+
target_compile_definitions(mrdox PUBLIC -D_ITERATOR_DEBUG_LEVEL=0)
154+
target_compile_options(mrdox PUBLIC /MD)
153155
endif()
154156
if(MSVC)
155157
target_compile_options(
156-
mrdox-api
158+
mrdox
157159
PUBLIC
158160
/permissive- # strict C++
159161
/W4 # enable all warnings
@@ -165,7 +167,7 @@ endif ()
165167

166168
if (MRDOX_CLANG)
167169
target_compile_options(
168-
mrdox-api
170+
mrdox
169171
PUBLIC
170172
-Wno-unused-private-field
171173
-Wno-unused-value
@@ -178,15 +180,6 @@ source_group(TREE ${PROJECT_SOURCE_DIR} PREFIX "" FILES CMakeLists.txt)
178180
source_group(TREE ${PROJECT_SOURCE_DIR}/include/mrdox PREFIX " include" FILES ${LIB_INCLUDES})
179181
source_group(TREE ${PROJECT_SOURCE_DIR}/source/lib/api PREFIX "api" FILES ${LIB_SOURCES})
180182

181-
#-------------------------------------------------
182-
#
183-
# Tool
184-
#
185-
#-------------------------------------------------
186-
187-
file(GLOB_RECURSE TOOL_SOURCES CONFIGURE_DEPENDS source/tool/*.cpp source/tool/*.hpp)
188-
add_executable(mrdox ${TOOL_SOURCES})
189-
target_link_libraries(mrdox PRIVATE mrdox-api)
190183
target_include_directories(mrdox
191184
PRIVATE
192185
${PROJECT_SOURCE_DIR}/source/lib
@@ -205,12 +198,7 @@ source_group(TREE ${PROJECT_SOURCE_DIR}/source/tool PREFIX "source" FILES ${TOOL
205198
if (BUILD_TESTING)
206199
file(GLOB_RECURSE TEST_SOURCES CONFIGURE_DEPENDS source/test/*.cpp source/test/*.hpp)
207200
enable_testing()
208-
add_executable(mrdox-test ${TEST_SOURCES})
209-
target_link_libraries(mrdox-test PRIVATE mrdox-api ${llvm_libs})
210-
target_include_directories(mrdox-test
211-
PRIVATE
212-
${PROJECT_SOURCE_DIR}/source/lib)
213-
add_test(NAME mrdox-test COMMAND mrdox-test
201+
add_test(NAME mrdox-test COMMAND mrdox --action test
214202
"${PROJECT_SOURCE_DIR}/test-files/old-tests"
215203
)
216204
source_group(TREE ${PROJECT_SOURCE_DIR} PREFIX "" FILES CMakeLists.txt)
@@ -260,7 +248,7 @@ endif()
260248

261249
if (MRDOX_INSTALL)
262250
# Create and install mrdox-targets.cmake
263-
install(TARGETS mrdox-api mrdox
251+
install(TARGETS mrdox
264252
EXPORT mrdox-targets
265253
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
266254
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

0 commit comments

Comments
 (0)