build: disable elua by default, plus nicer detection
authorDaniel Kolesa <d.kolesa@samsung.com>
Sat, 6 Jun 2020 17:09:21 +0000 (19:09 +0200)
committerJongmin Lee <jm105.lee@samsung.com>
Sun, 7 Jun 2020 21:49:33 +0000 (06:49 +0900)
Elua is now disabled by default. There are some other changes:

1) Elua scripts are only installed if Elua is enabled
2) Lua bindings are only installed if Elua is enabled
3) Elua with interpreter is clearly experimental and will message

.ci/ci-configure.sh
meson.build
meson_options.txt
src/bindings/meson.build
src/lib/elua/meson.build
src/scripts/meson.build

index 0f3f5af..77b1b71 100755 (executable)
@@ -20,7 +20,7 @@ if [ "$DISTRO" != "" ] ; then
   -Ddebug-threads=true -Dglib=true -Dg-mainloop=true -Dxpresent=true -Dxinput22=true \
   -Devas-loaders-disabler=json -Decore-imf-loaders-disabler= \
   -Dharfbuzz=true -Dpixman=true -Dhyphen=true -Defl-one=true \
-  -Dvnc-server=true -Dbindings=lua,cxx,mono -Delogind=false -Dinstall-eo-files=true -Dphysics=true"
+  -Dvnc-server=true -Delua=true -Dbindings=lua,cxx,mono -Delogind=false -Dinstall-eo-files=true -Dphysics=true"
 
   # Enabled png, jpeg evas loader for in tree edje file builds
   DISABLED_LINUX_COPTS=" -Daudio=false -Davahi=false -Dx11=false -Dphysics=false -Deeze=false \
@@ -31,7 +31,7 @@ if [ "$DISTRO" != "" ] ; then
   -Decore-imf-loaders-disabler=xim,ibus,scim  -Demotion-loaders-disabler=gstreamer1,libvlc,xine \
   -Demotion-generic-loaders-disabler=vlc -Dfribidi=false -Dfontconfig=false \
   -Dedje-sound-and-video=false -Dembedded-lz4=false -Dlibmount=false -Dv4l2=false \
-  -Delua=true -Dnls=false -Dbindings= -Dlua-interpreter=luajit -Dnative-arch-optimization=false"
+  -Delua=false -Dnls=false -Dbindings= -Dlua-interpreter=luajit -Dnative-arch-optimization=false"
   #evas_filter_parser.c:(.text+0xc59): undefined reference to `lua_getglobal' with interpreter lua
 
   RELEASE_READY_LINUX_COPTS=" --buildtype=release"
index 794a1d4..344c614 100644 (file)
@@ -270,6 +270,7 @@ luaold_interpreters = [
 ]
 
 lua_pc_name = ''
+have_elua = get_option('elua')
 
 if get_option('lua-interpreter') == 'lua'
   config_h.set('ENABLE_LUA_OLD', '1')
@@ -280,13 +281,27 @@ if get_option('lua-interpreter') == 'lua'
       break
     endif
   endforeach
+  if not lua.found()
+    error('Lua not found')
+  endif
+  if have_elua
+    luaver_min = cc.compute_int('LUA_VERSION_NUM - 500',
+      prefix: '#include <lua.h>', dependencies: lua
+    )
+    lua_ffi = dependency('cffi-lua-5.@0@'.format(luaver_min), required: false)
+    if not lua_ffi.found()
+      error('Elua with interpreter is experimental, disable it or install cffi-lua...')
+    else
+      message('Using experimental Elua with interpreter support...')
+    endif
+  endif
 else
   lua = dependency(get_option('lua-interpreter'))
   lua_pc_name = 'luajit'
 endif
 
 if sys_osx == true and get_option('lua-interpreter') == 'luajit'
-# luajit on macro is broken, this means we need to generate our own dependency with our arguments, a library later still needs to link to luajit for the pagesize argument thingy
+# luajit on macos is broken, this means we need to generate our own dependency with our arguments, a library later still needs to link to luajit for the pagesize argument thingy
   lua = declare_dependency(
     include_directories: include_directories(lua.get_pkgconfig_variable('includedir')),
     link_args: ['-L'+lua.get_pkgconfig_variable('libdir'), '-l'+lua.get_pkgconfig_variable('libname')]
index 1207fad..907927f 100644 (file)
@@ -276,7 +276,7 @@ option('v4l2',
 
 option('elua',
   type : 'boolean',
-  value : true,
+  value : false,
   description : 'Lua launcher binary support in efl'
 )
 
@@ -301,7 +301,7 @@ option('nls',
 option('bindings',
   type : 'array',
   choices : ['lua', 'cxx', 'mono'],
-  value : ['lua', 'cxx'],
+  value : ['cxx'],
   description : 'Which auto-generated language bindings for efl to enable',
 )
 
index 61027d3..d7d7cba 100644 (file)
@@ -18,6 +18,10 @@ if (bindings.contains('cxx') == false and bindings.contains('mono'))
   )
 endif
 
+if bindings.contains('lua') and not have_elua
+  error('Elua is necessary for Lua bindings')
+endif
+
 foreach binding : bindings_order
   if bindings.contains(binding)
     subdir(join_paths( binding))
index 15b66ae..66bd945 100644 (file)
@@ -2,10 +2,7 @@ elua_deps = [eina, eo, efl, ecore, ecore_file, intl]
 elua_pub_deps = [lua]
 
 if get_option('lua-interpreter') == 'lua'
-  luaver_min = cc.compute_int('LUA_VERSION_NUM - 500',
-    prefix: '#include <lua.h>', dependencies: lua
-  )
-  elua_deps += dependency('cffi-lua-5.@0@'.format(luaver_min))
+  elua_deps += lua_ffi
 endif
 
 elua_src = ['elua.c', 'io.c', 'cache.c']
index b8d7382..4871315 100644 (file)
@@ -1,4 +1,5 @@
 subdir('eo')
-if get_option('elua') == true
+
+if have_elua
   subdir('elua')
 endif