22# library.
33cmake_minimum_required (VERSION 3.22.1 )
44
5- project (ofapp LANGUAGES CXX )
5+ project (ofApp LANGUAGES CXX )
66set (TARGET_ANDROID TRUE )
77
88set (LOCAL_PATH ${CMAKE_SOURCE_DIR} )
99set (PRJ_OF_ROOT ${LOCAL_PATH} /../../../../../../../)
10-
1110set (PURE_OF_ROOT ${LOCAL_PATH} /../../../../../../../)
1211set (CORE_OF_ROOT ${PURE_OF_ROOT} /libs/openFrameworks)
1312set (LIBS_ROOT ${PURE_OF_ROOT} /libs)
14-
1513set (PRJ_ADDONS_PATH ${PURE_OF_ROOT} /addons)
1614set (PRJ_SOURCE_PATH ${LIBS_ROOT} /openFrameworks)
1715set (PRJ_LIBS_ROOT ${PURE_OF_ROOT} /libs)
18-
1916set (OF_ANDROID ${PURE_OF_ROOT} /libs/openFrameworksCompiled/project/android )
2017set (OF_ANDROID_OUTPUT ${PURE_OF_ROOT} /libs/openFrameworksCompiled/lib/android )
21-
2218set (PRJ_OFX_ANDROID_PATH ${PRJ_ADDONS_PATH} /ofxAndroid)
2319set (PRJ_OFX_ANDROID_CPP_PATH ${PRJ_OFX_ANDROID_PATH} /src)
2420
@@ -47,31 +43,30 @@ function(check_library)
4743 endif ()
4844endfunction ()
4945
50- set (CMAKE_CXX_STANDARD 17)
46+ set (CMAKE_C_STANDARD 17)
47+ set (CMAKE_CXX_STANDARD 23)
5148set (CMAKE_CXX_STANDARD_REQUIRED ON )
52- set (CMAKE_CXX_EXTENSIONS ON )
49+ set (CMAKE_CXX_EXTENSIONS OFF )
5350set (TARGET_ANDROID ON )
54- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c17 -Oz -DNDEBUG -frtti --warn-uninitialized - fno-short-enums -Wextra - fPIE -fPIC -fuse-ld=gold - fexceptions -ffunction-sections -fdata-sections -Wall -Wextra -Wfloat-equal -Wundef -Werror -fverbose-asm -Wint-to-pointer-cast -Wshadow -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wcast-qual -Wmissing-prototypes -Wstrict-overflow=5 -Wwrite-strings -Wconversion --pedantic-errors " )
55- set (CMAKE_CPP_FLAGS "${CMAKE_C_FLAGS } -std=c++17 -Oz -DNDEBUG - stdlib=libc++ --warn-uninitialized -frtti -Wextra - fno-short-enums -fPIE -fPIC -fuse-ld=gold - fexceptions -ffunction-sections -fdata-sections -Wall -Wextra -Wfloat-equal -Wundef -Werror -fverbose-asm -Wint-to-pointer-cast -Wshadow -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wcast-qual -Wmissing-prototypes -Wstrict-overflow=5 -Wwrite-strings -Wconversion --pedantic-errors " )
51+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ferror-limit=0 - std=c17 -Oz -Wall - fno-short-enums -fPIE -fPIC -fexceptions -ffunction-sections -fdata-sections" )
52+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -ferror-limit=0 - std=c++23 -Oz -stdlib=libc++ -Wall - fno-short-enums -fPIE -fPIC -fexceptions -ffunction-sections -fdata-sections" )
5653set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export-dynamic" )
57-
5854print_all_variables ()
59-
60- # Creates the project's shared lib: libnative-lib.so.
61- # The lib is loaded by this project's Java code in MainActivity.java:
62- # System.loadLibrary("native-lib");
63- # The lib name in both places must match.
64- add_library ( ofapp #name
65- SHARED # type of library
55+ set (OF_LIBRARY_TYPE "SHARED" ) # or "STATIC"
56+ if (OF_LIBRARY_TYPE STREQUAL "SHARED" )
57+ set (LIB_EXTENSION ".so" )
58+ elseif (OF_LIBRARY_TYPE STREQUAL "STATIC" )
59+ set (LIB_EXTENSION ".a" )
60+ endif ()
61+
62+ add_library ( ofApp
63+ ${OF_LIBRARY_TYPE}
6664 # src files for project (just c/cpp)
6765 ${CMAKE_SOURCE_DIR} /main.cpp
6866 ${CMAKE_SOURCE_DIR} /ofApp.cpp
69- )
70-
67+ )
7168
72- # Specifies a path to native header files
7369include_directories (
74- # openFrameworks headers
7570 ${PRJ_SOURCE_PATH} /3d
7671 ${PRJ_SOURCE_PATH} /app
7772 ${PRJ_SOURCE_PATH} /communication
@@ -84,59 +79,54 @@ include_directories(
8479 ${PRJ_SOURCE_PATH} /utils
8580 ${PRJ_SOURCE_PATH} /video
8681 ${PRJ_SOURCE_PATH}
87- # openFrameworks addons includes
82+ ${PRJ_OFX_ANDROID_CPP_PATH} /
8883 ${PURE_OF_ROOT} /addons/ofxAndroid/src
8984 ${PURE_OF_ROOT} /addons/ofxAccelerometer/src
90- ${PURE_OF_ROOT} /addons/ofxXmlSettings/src
91- ${PURE_OF_ROOT} /addons/ofxXmlSettings/libs
92- # openFrameworks Libs includes
9385 ${PRJ_LIBS_ROOT} /FreeImage/include
9486 ${PRJ_LIBS_ROOT} /freetype/include
9587 ${PRJ_LIBS_ROOT} /freetype/include/freetype2
9688 ${PRJ_LIBS_ROOT} /freetype/include/freetype2/freetype/config
9789 ${PRJ_LIBS_ROOT} /freetype/include/freetype2/freetype/internal
9890 ${PRJ_LIBS_ROOT} /freetype/include/freetype2/freetype/internal/services
9991 ${PRJ_LIBS_ROOT} /glm/include
92+ ${PRJ_LIBS_ROOT} /brotli/include
93+ ${PRJ_LIBS_ROOT} /json/include
94+ ${PRJ_LIBS_ROOT} /libpng/include
95+ ${PRJ_LIBS_ROOT} /fmt/include
10096 ${PRJ_LIBS_ROOT} /pugixml/include
10197 ${PRJ_LIBS_ROOT} /json/include
10298 ${PRJ_LIBS_ROOT} /tess2/include
10399 ${PRJ_LIBS_ROOT} /utf8/include
100+ ${PRJ_LIBS_ROOT} /tess2/include
101+ ${PRJ_LIBS_ROOT} /zlib/include
104102 ${PRJ_LIBS_ROOT} /uriparser/include
103+ ${PRJ_LIBS_ROOT} /openssl/include
104+ ${PRJ_LIBS_ROOT} /curl/include
105105 ${CMAKE_SOURCE_DIR} /
106106 ${CMAKE_SOURCE_DIR} /
107107 ${OF_ANDROID}
108108)
109109
110- find_library (android -lib android )
111- find_library (log -lib log )
112- find_library (GLES2-lib GLESv2 )
113-
114- #find_library(GLES1-lib GLESv1_CM)
115- #find_library(GLES3-lib GLESv3)
116-
110+ find_library (ANDROID_LIB NAMES android )
111+ find_library (LOG_LIB NAMES log )
112+ find_library (GLES1_LIB NAMES GLESv1_CM )
113+ find_library (GLES2_LIB NAMES GLESv2 )
114+ find_library (GLES3_LIB NAMES GLESv3 )
117115
118- target_link_libraries (ofapp
119- EGL
120- GLESv2
116+ target_link_libraries (ofApp
117+ android
121118 log
122- c
123119 m
124120 z
125121 dl
126- # GLESv3
127- )
128-
129- target_link_libraries ( ofapp
130- ${android-lib} )
131- target_link_libraries ( ofapp
132- ${GLES2-lib} )
133- target_link_libraries ( ofapp
134- ${log-lib} )
135- #target_link_libraries( ofApp
136- # ${GLES3-lib} )
137- #target_link_libraries( ofApp
138- # ${GLES1-lib} )
122+ )
123+ target_link_libraries (ofApp
124+ ${ANDROID_LIB}
125+ ${GLES2_LIB}
126+ ${GLES3_LIB}
127+ ${GLES1_LIB}
128+ ${LOG_LIB}
129+ )
139130
140- # Finally link in openFrameworks Library for each ABI
141- target_link_libraries ( ofapp
142- ${OF_ANDROID_OUTPUT} /${ANDROID_ABI}/libopenFrameworksAndroid.so )
131+ target_link_libraries ( ofApp
132+ ${OF_ANDROID_OUTPUT} /${ANDROID_ABI}/libopenFrameworksAndroid${LIB_EXTENSION} )
0 commit comments