You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Configuration changes to support no-std no-rtti no-EH when not using Unreal (#128)
Added INKCPP_NO_EH, INKCPP_NO_RTTI to further
configure.
+ INKCPP_API (so I define all of those when building an inkcpp API static library to link to my runtime).
+ Use new defines to define internal INK_ENABLE_EH, INK_ENABLE_RTTI and
change client code to use these rather than INK_ENABLE_UNREAL.
+ Suppress the non-char* getline methods when INK_ENABLE_CSTD is defined.
Replace std:::remove_cv_t+remove_reference_t with new
+ remove_refererence+existing remove_cv
+ Define sized types when we don't have \<ctype\>
+ Verify sized type sizes.
Maybe it would be better with a single define to turn all that on,
although I can see gamedev people might want to separate EH and rtti
support.
Tested for x64 and x32, all builds and runs happily (although I did have
to suppress warnings 4244, 4018 and 4267. But my test isn't exhaustive -
I compile and run a complex story, but it's not using any function
bindings yet, which might touch more std code.
(This is a cool project by the way. It's a little bit C++ feature heavy
for my preference but I can't argue with the results :) Love the flat
binary data format. Trying to figure out some whitespace & glue issues
next but not getting very far.)
---------
Co-authored-by: Julian Benda <julian.m.benda@gmail.com>
cmake_dependent_option(WHEEL_BUILD"Set for build wheel python lib. (see setup.py for ussage)"OFF"INKCPP_PY"OFF)
53
+
cmake_dependent_option(WHEEL_BUILD"Set for build wheel python lib. (see setup.py for ussage)"OFF
54
+
"INKCPP_PY"OFF)
54
55
option(INKCPP_C"Build c library"OFF)
55
-
option(INKCPP_TEST"Build inkcpp tests (requires: inklecate in path / env: INKLECATE set / INKCPP_INKLECATE=OS or ALL)"OFF)
56
-
set(INKCPP_INKLECATE "NONE"CACHESTRING"If inklecate should be downloaded automatically from the official release page. NONE -> No, OS -> Yes, but only for the current OS, ALL -> Yes, for all availible OSs")
56
+
option(INKCPP_TEST"Build inkcpp tests (requires: inklecate in path / env: INKLECATE set \
57
+
/ INKCPP_INKLECATE=OS or ALL)"OFF)
58
+
set(INKCPP_INKLECATE
59
+
"NONE"
60
+
CACHESTRING"If inklecate should be downloaded automatically from the official release page. \
61
+
NONE -> No, OS -> Yes, but only for the current OS, ALL -> Yes, for all availible OSs")
option(INKCPP_DOC_BlueprintUE"Building doxygen documentation with BlueprintUE visualisation for unreal blueprints. (Requires node js)"ON)
136
-
if (INKCPP_DOC_BlueprintUE)
137
-
set(NODEJS_HINT "None"CACHEPATH"Directory of NodeJS executable to use for generating BlueprintUE visualisation.")
138
-
if (IS_DIRECTORY"${NODEJS_HINT}")
139
-
find_program(NODEJS_PATHnodeHINTS${NODEJS_HINT}DOC"NodeJS executable to build BlueprintUE visualisation in documentation.")
140
-
else()
141
-
find_program(NODEJS_PATHnodeDOC"NodeJS executable to build BlueprintUE visualisation in documentation.")
142
-
endif (IS_DIRECTORY"${NODEJS_HINT}")
143
-
if ("${NODEJS_PATH}"STREQUAL"NODEJS-NOTFOUND")
144
-
message(SEND_ERROR"NodeJS is required to build BlueprintUE visualisation. But it was not found. Install NodeJS set NODEJS_HINT to a directory containing the executable. Or disable building the visualisation with setting INKCPP_DOC_BlueprintUE=OFF")
145
-
endif("${NODEJS_PATH}"STREQUAL"NODEJS-NOTFOUND")
146
-
endif(INKCPP_DOC_BlueprintUE)
159
+
find_package(Doxygen)
160
+
if(DOXYGEN_FOUND)
161
+
option(INKCPP_DOC_BlueprintUE
162
+
"Building doxygen documentation with BlueprintUE visualisation for unreal blueprints. \
163
+
(Requires node js)"ON)
164
+
if(INKCPP_DOC_BlueprintUE)
165
+
set(NODEJS_HINT
166
+
"None"
167
+
CACHEPATH
168
+
"Directory of NodeJS executable to use for generating BlueprintUE visualisation.")
169
+
if(IS_DIRECTORY"${NODEJS_HINT}")
170
+
find_program(
171
+
NODEJS_PATHnode
172
+
HINTS${NODEJS_HINT}
173
+
DOC"NodeJS executable to build BlueprintUE visualisation in documentation.")
174
+
else()
175
+
find_program(NODEJS_PATHnode
176
+
DOC"NodeJS executable to build BlueprintUE visualisation in documentation.")
177
+
endif(IS_DIRECTORY"${NODEJS_HINT}")
178
+
if("${NODEJS_PATH}"STREQUAL"NODEJS-NOTFOUND")
179
+
message(
180
+
SEND_ERROR
181
+
"NodeJS is required to build BlueprintUE visualisation. \
182
+
But it was not found. Install NodeJS set NODEJS_HINT \
183
+
to a directory containing the executable. \
184
+
Or disable building the visualisation with setting INKCPP_DOC_BlueprintUE=OFF")
# "Build Doxygen documentation in ${PROJECT_SOURCE_DIR}/Documentation." "To view them you can for example use" "'python -m http.server -d \"${PROJECT_SOURCE_DIR}/Documentation\" 8080'" "'explorer http://localhost:8080/html'"
0 commit comments