birdofpreyru / react-native-static-server

Embedded HTTP server for React Native
https://dr.pogodin.studio/docs/react-native-static-server
Other
135 stars 21 forks source link

Update build config to request CMake 3.22 as the minimum supported version #66

Closed Karrthik-Arya closed 11 months ago

Karrthik-Arya commented 12 months ago

I believe set(PKG_CONFIG_ARGN --libs-only-l) was added to avoid the following issue whill building on linux but is not working as intended

Building C object lighttpd1.4/build/CMakeFiles/lighttpd.dir/plugin.c.o
  clang: warning: -lpcre2-8: 'linker' input unused [-Wunused-command-line-argument]
  clang: warning: -lpcre2-8: 'linker' input unused [-Wunused-command-line-argument]
  clang: warning: argument unused during compilation: '-L/home/winston/Documents/infini3/fijit/node_modules/@dr.pogodin/react-native-static-server/android/.cxx/Debug/12o6p1q6/arm64-v8a/sysroot/lib' [-Wunused-command-line-argument]
  [2/2] Linking C shared library ../../../../build/intermediates/cxx/Debug/12o6p1q6/obj/arm64-v8a/liblighttpd.so
  FAILED: ../../../../build/intermediates/cxx/Debug/12o6p1q6/obj/arm64-v8a/liblighttpd.so 
  : && /home/winston/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android28 --sysroot=/home/winston/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fexceptions -DPCRE2_CODE_UNIT_WIDTH=8 -I/home/winston/Documents/infini3/fijit/node_modules/@dr.pogodin/react-native-static-server/android/.cxx/Debug/12o6p1q6/arm64-v8a/sysroot/include -L/home/winston/Documents/infini3/fijit/node_modules/@dr.pogodin/react-native-static-server/android/.cxx/Debug/12o6p1q6/arm64-v8a/sysroot/lib -lpcre2-8 -pipe -Wall -g -Wshadow -W -pedantic  -g  -fno-limit-debug-info       -O0  -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Qunused-arguments -Wl,--no-undefined  -Wl,--gc-sections      -Wl,-export-dynamic -shared -Wl,-soname,liblighttpd.so -o ../../../../build/intermediates/cxx/Debug/12o6p1q6/obj/arm64-v8a/liblighttpd.so lighttpd1.4/build/CMakeFiles/lighttpd.dir/server.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/response.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/connections.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/h1.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/sock_addr_cache.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/fdevent_impl.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/http_range.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/network.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/network_write.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/data_config.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/configfile.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/configparser.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/base64.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/buffer.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/burl.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/log.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/http_header.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/http_kv.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/keyvalue.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/chunk.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/http_chunk.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/fdevent.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/fdevent_fdnode.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/gw_backend.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/stat_cache.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/http_etag.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/array.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/algo_md5.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/algo_sha1.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/algo_splaytree.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/configfile-glue.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/http-header-glue.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/http_cgi.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/http_date.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/plugin.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/reqpool.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/request.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/sock_addr.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/rand.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/fdlog_maint.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/fdlog.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/sys-setjmp.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/ck.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_rewrite.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_redirect.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_access.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_alias.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_indexfile.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_staticfile.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_setenv.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_expire.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_simple_vhost.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_evhost.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_fastcgi.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_scgi.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_accesslog.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_ajp13.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_auth.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_auth_api.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_authn_file.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_cgi.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_deflate.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_dirlisting.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_extforward.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_proxy.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_rrdtool.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_sockproxy.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_ssi.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_status.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_userdir.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_vhostdb.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_vhostdb_api.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_webdav.c.o lighttpd1.4/build/CMakeFiles/lighttpd.dir/mod_wstunnel.c.o  -llog  lighttpd1.4/build/libmod_accesslog.a  lighttpd1.4/build/libmod_ajp13.a  lighttpd1.4/build/libmod_auth.a  lighttpd1.4/build/libmod_authn_file.a  lighttpd1.4/build/libmod_cgi.a  lighttpd1.4/build/libmod_deflate.a  lighttpd1.4/build/libmod_dirlisting.a  lighttpd1.4/build/libmod_extforward.a  lighttpd1.4/build/libmod_h2.a  lighttpd1.4/build/libmod_proxy.a  lighttpd1.4/build/libmod_rrdtool.a  lighttpd1.4/build/libmod_sockproxy.a  lighttpd1.4/build/libmod_ssi.a  lighttpd1.4/build/libmod_status.a  lighttpd1.4/build/libmod_userdir.a  lighttpd1.4/build/libmod_vhostdb.a  lighttpd1.4/build/libmod_webdav.a  lighttpd1.4/build/libmod_wstunnel.a  -L/usr/lib  -lpcre2-8  /home/winston/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/28/libz.so   -latomic -lm && :
  ld: error: --fix-cortex-a53-843419 is only supported on AArch64 targets
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.
birdofpreyru commented 12 months ago

_I believe set(PKG_CONFIGARGN --libs-only-l) was added to avoid the following issue while building on linux

That's right, and related details, which I have forgotten myself already, luckily have been recorded here: https://github.com/facebook/react-native/issues/38111

but is not working as intended

Well... so far it worked for me on Ubuntu, and I have both CMake 3.18.1 and 3.22.1 installed as a part of Android SDK, not sure right away which one is actually picked up by RN builds on my machine.

So... yeah... I see in your log it seems to still attempt PCRE2 linking as -L/usr/lib -lpcre2-8, rather than just -lpcre2-8, as --libs-only-l flag should force it... not sure why it happens. Most probably, you are using an older CMake, which does not support the flag?

birdofpreyru commented 12 months ago

@Karrthik-Arya yeah... I checked, PKG_CONFIG_ARGN is supported by CMake since v3.22, most probably you are building it with an older CMake, thus it does not work for you. Thus, to overcome the problem, try to upgrade CMake.

I guess, I'll later update the build config to require CMake 3.22 as the minimum supported version (it has been released on Nov 18, 2021 — a while ago, thus I guess it is fair to request it as the minimum version, rather than look for an alternative way to workaround the problem).

Karrthik-Arya commented 12 months ago

Actually I am using cmake 3.22.1 itself, i am manjaro rn can that be a cause of this issue

birdofpreyru commented 12 months ago

Hmm... no idea then, I guess you'll have to troubleshoot it yourself.

birdofpreyru commented 11 months ago

Heads up — CMake v3.22.1 will be declared as the minimum supported version in the next v0.8.4 release of the library; and then I'll close this ticket. Sure, feel free to further re-open it (or create a new one), if you confirm the same issue is still there with the new version of the library.