From 2f0e45e7a7110761080e2540c95a9fc94f162f81 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Thu, 17 Jan 2019 21:29:24 +0100 Subject: [PATCH] Android CMake: icons, docs, more apps --- CMake/Android/CMakeList.txt.in | 24 ++++--- CMake/Android/hdpi.ic_launcher.png | Bin 3418 -> 3059 bytes CMake/Android/mdpi.ic_launcher.png | Bin 2206 -> 1715 bytes CMake/Android/xhdpi.ic_launcher.png | Bin 4842 -> 4082 bytes CMake/Android/xxhdpi.ic_launcher.png | Bin 7718 -> 7266 bytes CMake/android.cmake | 98 +++++---------------------- CMake/macros.cmake | 11 +++ src/Fl_Text_Display.cxx | 2 +- test/CMakeLists.txt | 49 ++++++-------- 9 files changed, 62 insertions(+), 122 deletions(-) mode change 100644 => 100755 CMake/Android/hdpi.ic_launcher.png mode change 100644 => 100755 CMake/Android/mdpi.ic_launcher.png mode change 100644 => 100755 CMake/Android/xhdpi.ic_launcher.png mode change 100644 => 100755 CMake/Android/xxhdpi.ic_launcher.png diff --git a/CMake/Android/CMakeList.txt.in b/CMake/Android/CMakeList.txt.in index aaa992d95..7c7aeb1fa 100644 --- a/CMake/Android/CMakeList.txt.in +++ b/CMake/Android/CMakeList.txt.in @@ -13,25 +13,25 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# Modified to be a template for Android builds in FLTK +# Copyright 2019 Matthias Melcher and others +# cmake_minimum_required(VERSION 3.4.1) -set(FLTK_DIR ../../../../../../..) -set(FLTK_IDE_DIR ../../../..) +set(FLTK_DIR "@ANDROID_FLTK_DIR@") +set(FLTK_IDE_DIR "../../../..") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -# FIXME: add as a second argument the binary build dir -# so that the first argument can link directly to FLTK -# instead of the fltk symlink, which is bad for SVN -add_subdirectory(${FLTK_DIR}/ "${CMAKE_CURRENT_BINARY_DIR}/lib" EXCLUDE_FROM_ALL) +# FIXME: this includes the entire CMakeLists again, creating an entire library +# build in every target +# TODO: create separate targets for all fltk libraries that can be easily +# linked by all app targets +add_subdirectory("${FLTK_DIR}/" "${CMAKE_CURRENT_BINARY_DIR}/lib" EXCLUDE_FROM_ALL) -# run FLuid commands if any +# run Fluid build steps for every .fl file, if any @ANDROID_FLUID_COMMANDS@ - -# copy source files -@ANDROID_APP_COPY_SOURCES@ - # now build app's shared lib add_library( test_@ANDROID_APP_NAME@ SHARED @@ -48,6 +48,8 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") # add lib dependencies +# FIXME: apps may depend on additional fltk libraries; thise dependencies +# must be created in the CREATE_ANDROID_IDE_FOR_TEST macro target_link_libraries( test_@ANDROID_APP_NAME@ fltk diff --git a/CMake/Android/hdpi.ic_launcher.png b/CMake/Android/hdpi.ic_launcher.png old mode 100644 new mode 100755 index cde69bcccec65160d92116f20ffce4fce0b5245c..1c28eb22b3efad6402ea027a46a6f9bbc46f36e6 GIT binary patch delta 3053 zcmVSC+ZAXoO@1$*w{8Y zu+f2y4s3K_qXYl19jL9L@U{4?AD|{Gifxo&NRr3| zQxMjwhgye(eJJf=Z)LNgSULuRujh{HXuW=IYNCF++wDAm`uAUIF^8a-Y|w{4_p_Z> z`cuES*6O`yn16|;$g(l{73l9l$x6|XOq4N2acq8T%b>BaX)d{dpk)0?2Ea)MUy?On z>pH3g8O89s^}1+nZ;t(|S#N*gHlCdnbDur?+<&)jnDP0?x(_hDULV_jck>Zo7xtmh08S&zD}x8%TWDgs zd~*NhKIndun&a>a2o0MyA#l$dbl}u03?AxGLu4e zOP(bwihr+%93>VY5~Kyv-5?USlzP8E7zak-QWI-XeV7g7&4EM(b%clEkgZ}R6Hg(| z8p6gYt=cK?tB7Hoqb8T+7dB{=<@H77#A52@Enfj5z+==Lhue4@jw`2v&(g#K|24v~ z200=5pn}ct*=#^kWV%B&3fMWNX!f`)?dB-^*;q}aa>rzY^Y>!$hM2k=qct%$T8CS!OmsR!G2kQ$tOQbxbKpoE z5&|R*MH_?@XoUMhKofK8=7zX`UsG&rHbhM=0Gz3Kh71-tdmM&Vfb;JQE%DlH+p!+l zH6=dz=w0I8Jx#H5+qf7RQGZlBy@B}qsekL@x6jRp3zwE1pQOU-NpdwI+8_!7flcgb zXw2u2?16o+m>753NA$8nrf0&b^DXiCcaMwZ)d9I4IPIt9->#HA5G*k%UBppY25lJ@u+oKl;`V~_3<4OkD>yzx=! zAe$#g#KGNDPRIbwv5(Yi;=#MOTC8xuu7PV@wt-wJaf-1&W8nATJ=0=x(@maMZhooN zVG$b}wQAB_(_&%kUMRsn`4w?EdoESxc_ozAZD(p z1(y$wb3(HG!CFl z3^z3w)dI-|Id%HUY#fpnT3uLA@Y)2nT#X9ggCZJ>%|scd`iE|>ABc1kk{3eh234<4 zc|Z-U48W9@ZcfgzR0T4+n}3k}ILu|QK;m;D*&r3rd^+KI99IUKWirW%k}p*Ua}+mb zN+Z|uvxi(Fv7-&b05vnzL^L%s6vyQSte;(z%CC;tIAoN$ro*Ul41g7Gp6T|9%QMxvLvS#`W2 zGR_!();OFB%3XJC5{D0N$v3A$3`6x#QEEb7FfOHz(JN^u0wr?Ln^N$~{P00_!|8-~ zlynMej;4~k7Dxv>pMP=b$ndg5ic~dVDqhIW2Y{y<>JAoiB8)MaXv_-IhJfAhijL74 z6u-|c3Rw+54ZkMR1_LNN26LJdUkkp@Ba)30riH`|a)0jdr*b-cF=GJl(wv!Ti@%+^ zrbtk|9e|aJBQT3k*E+9vt!F}_K~S`xoYfT)&(1E1b8jw%On@!5C)dD5K-ZV(@s?$G{WE8|0s3b`(5@Bme3674g&`&PzAd|Tv6@iamP8>fmCZ%~y;n%jYQ^cI)lrwiP?;v5weM>kpySD`|mre73? zdH%HhVd@Nn`|-#jLk*njgkZV$=P>mYQ%Q^x!Y1@JLv zaHznp4@!}m#~vzn=j~&=!3S(p-UOZ zZ8hsG`=Jd3bBAxuH!b0V&-?emy>#efZ^+3_4^SW60H|4m6UxOiaqN`^ z_!*>t?0#{mk9s-GA^Hdc08=BhcajoOwN1GnU|a7~X2& z=AJUPCJIM_WXt&`Sqwh|f0mE_=!AUBJHb)P);ecYrQUYG$A= zQK2ClVd$+DJm41~pV(^L;UTt8TcSb!Dg;$PWo3#Z4hd!iY}R--N7aftFbjxGGeOtw z7;g~XY?rLYp*afHt^fyS3KI=g4w$u4>3@baZ1orX*LBGtj`1rUJ5z9WNMgH#!`F zr+!Xl7`LyRJcMPV*RHM3y*QZp-8V$*%jcB-f))SuYO(F@n;9zagh$r9>DEiCsZOEu2t9=+*3`Bgn3(-Op~xtc-}|1s)Mb{ vk0!s3#=;qM8*AD~z0rY<4s3KF*Ma{54%0;nq;sDJ00000NkvXXu0mjfxU9^a literal 3418 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 delta 2194 zcmV;D2yOSX4W1E@B!2{FK}|sb0I`n?{9y$E001CkNK#Dz0D2|>0Dy!50Qvv`0D$NK z0Cg|`0P0`>06Lfe02gqax=}m;000JJOGiWi000000Qp0^e*gdg32;bRa{vGf6951U z69E94oEQKA2cStrK~!ko?O9!H6xS90&YhX{u6Ng96W7=#IDZ5i(i+oXS)r6PF*2ag z5}^b{(w3%DP#+ovDG80B5=tvU5Rs}@sc5UTN~9KoNYW~8qm(9MS-S8v^6vi zCUNk(br)=}e|C26>BG$I&hPFl0n`T$T6T8sx%YnG`MKxbYv6|5kn1Ai;k^&X0nl}r zi+1kZngAdo0e_34^MgM=w4=Lk=F+#H+R}85Nzenk*Lo_T5=IGNOF6#e7|Ab=# zvPg+1p80xx>*IZusDyUuUg;(%FCI%8vBr1IvaC$*~_j z^v%uA7*DzmcPc+efq3H9#Heg%)1OR}Ui|uSEqvILgH8Elg zwRY26V;@bO-21?>O#m_g3Q;W^RR}<$yLahb+kX#q9|H&s=|omF0sDWl^nUu-$-cAi z4)p_=iV8}phQRXWO|h*{uHGH5!{M`+?Mqu`E)Qnk92uF6Wc_Lg(7pGrN^Smr z&zrS3$&Epl4U#B2PD#|Gr}ORwt1~09S2BZ{NF<^Vpp6?>rPe*U=+9b0_V`go2k8x; zKz~3QZdumTus$;ydolAtWfB$ZKu1SMY|W!>zgKH`xoy>=WjQElsvzWjvc}U==y~w* z#jhYj(X2#3*?ypBPkb)*x`2m*cY?dJJh1yF>UhKVUf#456{4hEBkg*2YgglE#StGw z2A0&{jXRpZissbk@bBqC=yC?-tnUq%? z#|Ov4#x3U}ZGM+Hgn)2akiH#XXxRn;XvAWqWApI(;Qp$tzjomcG$h&p08Pmy$mwGk zo;dCE#o{}YzXGrtKt5=kun-d8Ik>r3OK=yMeTmwXYDRC;AajIo-WWY|~VSnHQ%U+q# z@m71KMx>W6ZAnxjK&_qisftKLz=v76+RzD92T-@7p%$Ly)aR0TN{!{Rg<(UI5M;QN zB`e`sS^Q~)E3kQfAY$`$20((?-d=8VOO0S1Km ziU9~BfVgB9OBZB65=aoh41Xd4B0$=ho&6XfsGe{tJqv}vv6#<(J_3p&xVDaz zzuZQ;0R{lIhM>hoF@JPGr2$8;$SwM9!PeL(kf|RAuAv;N_6#FElv!a!a z_aN|W5AG3P2mR;W7hYx^hFsDHvR|J;=Kf-grPYWwvhaYOzu z<$og|U;;R}vW)-$03~!qSaf7zbY(hYa%Ew3WdJfTF*GeOIV~_XR536*H8(mnI4v+Y zIxsN2$3gA@001R)MObuXVRU6WZEs|0W_bWIFflYOFgYzSHB>P$IyE;sH8?FWH##sd U&6@dA01E&B07*qoM6N<$g1e;&;{X5v diff --git a/CMake/Android/xhdpi.ic_launcher.png b/CMake/Android/xhdpi.ic_launcher.png old mode 100644 new mode 100755 index bfa42f0e7b91d006d22352c9ff2f134e504e3c1d..aa48b8524f182b19b70bddbedc6bb2eb18cdd5fc GIT binary patch literal 4082 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 diff --git a/CMake/Android/xxhdpi.ic_launcher.png b/CMake/Android/xxhdpi.ic_launcher.png old mode 100644 new mode 100755 index 324e72cdd7480cb983fa1bcc7ce686e51ef87fe7..91aad386459936cee538b086922a0b235eca4463 GIT binary patch literal 7266 zcmb7J^-~)TtS`mg8B&}9#fCc!x8ZJsQHBh+;T!94cUy7FV7L#4)6z2BVGMW12E~Sq zFFf9V@ZJwe?vlG)lKWheOX3anHA#sWi2wiqskWAy@uN)pUn0PJX1ypC}o{5#*@WM&+^fUo*gxsbkgR|171j9<4Hmxwr%=$eo~j z3QXoNrOhgD%~r+aj*jP76;szk=DzsX{98Lb=2!drmiB;e%B-YD$pTsre2M#wDB%C6 z7&k9jtd)b_w;JSnN$c*{LvS@1Sgvl(rg6y^GsoRWUkpsTgk9bLeT$FcxmxGuM)q({ zcUi>UE0isEk*yw3T7HyeeG`qv*Mnx%gcjhG_9pWQiyB3~!V>p~?B-;kSll6elic1z zp}t}y+bYXeofQF{tzkjWj2HsumPH(*7D@%(FEwyqf+@* zHSE&Vd-VGU{;N7K^843Lp4a`idp@D>9Bn*2JQM$TW|x1Tqmb18=yO4)-CrtyPQeE+ zq-0X*^5>qJmVx7aGPWsHwVK%yb3+~!RH2>?V!LuT`n_OZ+SIZIPi93b8|bExBay-O zx_V^hE|qu>?|&dsPkR47i@?y(lXf;Dt*|m@l$Ha19$Z*%ceX|_-usjF_MM$QtLKT% zcy0u+Y+5WQhFp?f#icZ(l`c9?Lc1>0ovSTYm6%%AN;d2>{SXe{>3 z=7nKh60g}9%h(cf=~ck)z~L;uOK8Mx5B~E@VR|n_Vo7of6|w|}8*c!QapmeuU*G=9 z$kOw%LaUz8FzFdR+GSy|b$W%0Dj#9G4i!wzk(u#h0xe^vw9%r_ag*h&u5Lm3P(|_& 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 KtJSN#`uIOx8q>Z2 literal 7718 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 diff --git a/CMake/android.cmake b/CMake/android.cmake index 7a8064a05..7255af3fe 100644 --- a/CMake/android.cmake +++ b/CMake/android.cmake @@ -17,95 +17,38 @@ # http://www.fltk.org/str.php # +# all target modules will be added here later configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/settings.gradle.in" "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/settings.gradle" @ONLY ) +# configuration file for all modules configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/build.gradle.in" "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/build.gradle" @ONLY ) +# create a custom abi file for this setup configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/abi-version.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/FL/abi-version.h" @ONLY ) -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/app.build.gradle.in" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/build.gradle" - @ONLY -) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/AndroidManifest.xml.in" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/AndroidManifest.xml" - @ONLY -) - - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/Roboto-Regular.ttf" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/assets/fonts/Roboto-Regular.ttf" - COPYONLY -) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/mdpi.ic_launcher.png" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/res/mipmap-mdpi/ic_launcher.png" - COPYONLY -) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/hdpi.ic_launcher.png" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/res/mipmap-hdpi/ic_launcher.png" - COPYONLY -) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/xhdpi.ic_launcher.png" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/res/mipmap-xhdpi/ic_launcher.png" - COPYONLY -) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/xxhdpi.ic_launcher.png" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" - COPYONLY -) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/strings.xml.in" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/res/values/strings.xml" - @ONLY -) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/CMakeList.txt.in" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/cpp/CMakeLists.txt" - @ONLY -) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Android/HelloAndroid.cxx.in" - "${CMAKE_CURRENT_BINARY_DIR}/AndroidStudio/app/src/main/cpp/HelloAndroid.cxx" - @ONLY -) - +# TODO: where should we create config.h? macro(CREATE_ANDROID_IDE_FOR_TEST NAME SOURCES LIBRARIES) - message(STATUS "Creating Android IDE for ${NAME}") + # message(STATUS "Creating Android IDE for ${NAME}") set (ANDROID_APP_NAME ${NAME}) + set (ANDROID_FLTK_DIR ${CMAKE_SOURCE_DIR}) set (srcs) set (ANDROID_APP_SOURCES) - set (ANDROID_APP_COPY_SOURCES) set (ANDROID_FLUID_COMMANDS) set (flsrcs) # fluid source files foreach(src ${SOURCES}) @@ -113,24 +56,23 @@ macro(CREATE_ANDROID_IDE_FOR_TEST NAME SOURCES LIBRARIES) list(APPEND flsrcs ${src}) string(REGEX REPLACE "(.*).fl" \\1 basename ${src}) string(APPEND ANDROID_FLUID_COMMANDS - "add_custom_command( OUTPUT \"${basename}.cxx\" \"${basename}.h\"\n" - " OUTPUT \"${basename}.cxx\" \"${basename}.h\"\n" - " COMMAND fluid -c \"\${CMAKE_CURRENT_SOURCE_DIR}/${src}\"\n" - " DEPENDS ${src}\n" - " MAIN_DEPENDENCY ${src}\n" + "add_custom_command(\n" + " OUTPUT \"\${FLTK_DIR}/test/${basename}.cxx\" \"\${FLTK_DIR}/test/${basename}.h\"\n" + " COMMAND fluid -c \"${src}\"\n" + " WORKING_DIRECTORY \"\${FLTK_DIR}/test\"\n" + " DEPENDS \"\${FLTK_DIR}/test/${src}\"\n" + " MAIN_DEPENDENCY \"\${FLTK_DIR}/test/${src}\"\n" ")\n\n" ) + file(TOUCH "${basename}.cxx") + file(TOUCH "${basename}.h") + file(TOUCH "${basename}.fl") set(src_cxx ${basename}.cxx) else () list(APPEND srcs ${src}) set(src_cxx ${src}) endif ("${src}" MATCHES "\\.fl$") - file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/AndroidStudio/${ANDROID_APP_NAME}/src/main/cpp/") - # FIXME: Unix only for older version of CMake - execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - "${CMAKE_CURRENT_SOURCE_DIR}/${src}" - "${CMAKE_BINARY_DIR}/AndroidStudio/${ANDROID_APP_NAME}/src/main/cpp/${src}") - string(APPEND ANDROID_APP_SOURCES " ${src_cxx}\n") + string(APPEND ANDROID_APP_SOURCES " \"\${FLTK_DIR}/test/${src_cxx}\"\n") endforeach(src) configure_file( @@ -187,12 +129,6 @@ macro(CREATE_ANDROID_IDE_FOR_TEST NAME SOURCES LIBRARIES) @ONLY ) - configure_file( - "${CMAKE_SOURCE_DIR}/CMake/Android/HelloAndroid.cxx.in" - "${CMAKE_BINARY_DIR}/AndroidStudio/${ANDROID_APP_NAME}/src/main/cpp/HelloAndroid.cxx" - @ONLY - ) - file(APPEND "${CMAKE_BINARY_DIR}/AndroidStudio/settings.gradle" "include ':${ANDROID_APP_NAME}'\n") endmacro(CREATE_ANDROID_IDE_FOR_TEST NAME SOURCES LIBRARIES) @@ -200,7 +136,7 @@ endmacro(CREATE_ANDROID_IDE_FOR_TEST NAME SOURCES LIBRARIES) macro(CREATE_ANDROID_IDE_WRAPUP) - message(STATUS "Wrapping up Android IDE creation") + # message(STATUS "Wrapping up Android IDE creation") endmacro(CREATE_ANDROID_IDE_WRAPUP) diff --git a/CMake/macros.cmake b/CMake/macros.cmake index afb855687..43da7c7df 100644 --- a/CMake/macros.cmake +++ b/CMake/macros.cmake @@ -188,6 +188,17 @@ macro(CREATE_EXAMPLE NAME SOURCES LIBRARIES) target_link_libraries(${tname} ${LIBRARIES}) + # CREATE_EXAMPLE can have an optional fourth argument with a list of options + # - the option ANDROID_OK is set if CREATE_EXAMPLE creates code for Androids + # builds in addition to the native build + if (${ARGC} GREATER 3) + foreach(OPTION ${ARGV3}) + if (${OPTION} STREQUAL ANDROID_OK AND OPTION_CREATE_ANDROID_STUDIO_IDE) + CREATE_ANDROID_IDE_FOR_TEST(${NAME} ${SOURCES} ${LIBRARIES}) + endif() + endforeach() + endif() + endmacro(CREATE_EXAMPLE NAME SOURCES LIBRARIES) ####################################################################### diff --git a/src/Fl_Text_Display.cxx b/src/Fl_Text_Display.cxx index cc0c10c98..ef5a4d04d 100644 --- a/src/Fl_Text_Display.cxx +++ b/src/Fl_Text_Display.cxx @@ -396,7 +396,7 @@ void Fl_Text_Display::buffer( Fl_Text_Buffer *buf ) { Styles are ranged from 65 ('A') to 126. \param styleBuffer this buffer works in parallel to the text buffer. For every - character in the text buffer, the stye buffer has a byte at the same offset + character in the text buffer, the style buffer has a byte at the same offset that contains an index into an array of possible styles. \param styleTable a list of styles indexed by the style buffer \param nStyles number of styles in the style table diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index a1ce6d9fc..18772b1d2 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -3,7 +3,7 @@ # # CMakeLists.txt used to build test and demo apps by the CMake build system # -# Copyright 2004-2018 by Bill Spitzak and others. +# Copyright 2004-2019 by Bill Spitzak and others. # # This library is free software. Distribution and use rights are outlined in # the file "COPYING" which should have been included with this file. If this @@ -39,39 +39,30 @@ include_directories( ) ####################################################################### -## testing creation of Android Studio IDE files -if (OPTION_CREATE_ANDROID_STUDIO_IDE) -CREATE_ANDROID_IDE_FOR_TEST(arc arc.cxx fltk) -CREATE_ANDROID_IDE_FOR_TEST(hello hello.cxx fltk) -CREATE_ANDROID_IDE_FOR_TEST(input input.cxx fltk) -CREATE_ANDROID_IDE_FOR_TEST(inactive inactive.fl fltk) -# FIXME: fails because in the current schmeme, we can't find the .h files -#CREATE_ANDROID_IDE_FOR_TEST(keyboard "keyboard.cxx;keyboard_ui.fl" fltk) -endif (OPTION_CREATE_ANDROID_STUDIO_IDE) - -####################################################################### +# Add the ANDROID_OK option if the example can be compiled for Android +# as well as for other platforms. if(NOT ANDROID) -CREATE_EXAMPLE(adjuster adjuster.cxx fltk) -CREATE_EXAMPLE(arc arc.cxx fltk) -CREATE_EXAMPLE(animated animated.cxx fltk) -CREATE_EXAMPLE(ask ask.cxx fltk) -CREATE_EXAMPLE(bitmap bitmap.cxx fltk) +CREATE_EXAMPLE(adjuster adjuster.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(arc arc.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(animated animated.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(ask ask.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(bitmap bitmap.cxx fltk ANDROID_OK) CREATE_EXAMPLE(blocks blocks.cxx "fltk;${AUDIOLIBS}") -CREATE_EXAMPLE(boxtype boxtype.cxx fltk) -CREATE_EXAMPLE(browser browser.cxx fltk) -CREATE_EXAMPLE(button button.cxx fltk) -CREATE_EXAMPLE(buttons buttons.cxx fltk) -CREATE_EXAMPLE(checkers checkers.cxx fltk) -CREATE_EXAMPLE(clock clock.cxx fltk) +CREATE_EXAMPLE(boxtype boxtype.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(browser browser.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(button button.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(buttons buttons.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(checkers checkers.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(clock clock.cxx fltk ANDROID_OK) CREATE_EXAMPLE(colbrowser colbrowser.cxx "fltk;fltk_forms") -CREATE_EXAMPLE(color_chooser color_chooser.cxx fltk) -CREATE_EXAMPLE(cursor cursor.cxx fltk) -CREATE_EXAMPLE(curve curve.cxx fltk) +CREATE_EXAMPLE(color_chooser color_chooser.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(cursor cursor.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(curve curve.cxx fltk ANDROID_OK) CREATE_EXAMPLE(demo demo.cxx fltk) CREATE_EXAMPLE(device device.cxx fltk) -CREATE_EXAMPLE(doublebuffer doublebuffer.cxx fltk) -CREATE_EXAMPLE(editor editor.cxx fltk) -CREATE_EXAMPLE(fast_slow fast_slow.fl fltk) +CREATE_EXAMPLE(doublebuffer doublebuffer.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(editor editor.cxx fltk ANDROID_OK) +CREATE_EXAMPLE(fast_slow fast_slow.fl fltk ANDROID_OK) CREATE_EXAMPLE(file_chooser file_chooser.cxx "fltk;fltk_images") CREATE_EXAMPLE(fonts fonts.cxx fltk) CREATE_EXAMPLE(forms forms.cxx "fltk;fltk_forms")