11project (tox4j-c)
2- cmake_minimum_required (VERSION 2.8.12 )
2+ cmake_minimum_required (VERSION 3.16 )
33
44if (NOT DEFINED CMAKE_MACOSX_RPATH)
55 set (CMAKE_MACOSX_RPATH true )
@@ -11,42 +11,9 @@ endif()
1111
1212find_package (PkgConfig REQUIRED)
1313
14- pkg_search_module(LIBTOXCORE libtoxcore)
15- if (LIBTOXCORE_FOUND)
16- pkg_search_module(LIBTOXAV REQUIRED libtoxav)
17- link_directories (${LIBTOXCORE_LIBRARY_DIRS} )
18- include_directories (${LIBTOXCORE_INCLUDE_DIRS} )
19- foreach (flag ${LIBTOXCORE_CFLAGS_OTHER} )
20- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag} " )
21- endforeach ()
22-
23- link_directories (${LIBTOXAV_LIBRARY_DIRS} )
24- include_directories (${LIBTOXAV_INCLUDE_DIRS} )
25- foreach (flag ${LIBTOXAV_CFLAGS_OTHER} )
26- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag} " )
27- endforeach ()
28- else ()
29- pkg_search_module(TOXCORE REQUIRED toxcore)
30- link_directories (${TOXCORE_LIBRARY_DIRS} )
31- include_directories (${TOXCORE_INCLUDE_DIRS} )
32- foreach (flag ${TOXCORE_CFLAGS_OTHER} )
33- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag} " )
34- endforeach ()
35- endif ()
36-
37- find_package (Protobuf REQUIRED)
38- include_directories (${PROTOBUF_INCLUDE_DIRS} )
39-
14+ pkg_search_module(TOXCORE REQUIRED toxcore)
15+ find_package (protobuf CONFIG REQUIRED)
4016find_package (JNI)
41- if (JAVA_INCLUDE_PATH)
42- include_directories (${JAVA_INCLUDE_PATH} )
43- endif ()
44- if (JAVA_INCLUDE_PATH2)
45- include_directories (${JAVA_INCLUDE_PATH2} )
46- endif ()
47-
48- include_directories (${CMAKE_SOURCE_DIR} )
49- include_directories (${CMAKE_BINARY_DIR} )
5017
5118set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17" )
5219
@@ -96,14 +63,12 @@ endif()
9663# Build
9764#
9865
99- protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ToxAv/Av.proto
100- ToxCore/Core.proto util/ProtoLog.proto)
101-
10266add_library (
10367 ${PROJECT_NAME} SHARED
10468 ${ANDROID_CPU_FEATURES}
105- ${PROTO_SRCS}
106- ${PROTO_HDRS}
69+ ToxAv/Av.proto
70+ ToxCore/Core.proto
71+ util/ProtoLog.proto
10772 ToxAv/generated /enums.cpp
10873 ToxAv/generated /errors.cpp
10974 ToxAv/generated /impls.h
@@ -175,15 +140,28 @@ if(ANDROID_CPU_FEATURES)
175140 target_compile_definitions (${PROJECT_NAME} PRIVATE -Dtypeof=__typeof__)
176141endif ()
177142
178- target_link_libraries (${PROJECT_NAME} ${PROTOBUF_LIBRARIES} )
143+ target_include_directories (${PROJECT_NAME} PUBLIC ${PROTOBUF_INCLUDE_DIRS} )
144+ target_link_libraries (${PROJECT_NAME} protobuf::libprotobuf-lite)
179145
180- if (LIBTOXCORE_FOUND )
181- target_link_libraries (${PROJECT_NAME} ${LIBTOXAV_STATIC_LIBRARIES}
182- ${LIBTOXCORE_STATIC_LIBRARIES} )
183- else ( )
184- target_link_libraries (${PROJECT_NAME} ${TOXCORE_STATIC_LIBRARIES } )
146+ if (JAVA_INCLUDE_PATH )
147+ target_include_directories (${PROJECT_NAME} PUBLIC ${JAVA_INCLUDE_PATH} )
148+ endif ( )
149+ if (JAVA_INCLUDE_PATH2 )
150+ target_include_directories (${PROJECT_NAME} PUBLIC ${JAVA_INCLUDE_PATH2 } )
185151endif ()
186152
153+ target_link_directories (${PROJECT_NAME} PUBLIC ${TOXCORE_LIBRARY_DIRS} )
154+ target_link_libraries (${PROJECT_NAME} ${TOXCORE_STATIC_LIBRARIES} )
155+ target_include_directories (${PROJECT_NAME} PUBLIC ${TOXCORE_INCLUDE_DIRS} )
156+
157+ target_include_directories (${PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR} )
158+ target_include_directories (${PROJECT_NAME} PUBLIC ${CMAKE_BINARY_DIR} )
159+ target_include_directories (${PROJECT_NAME} PUBLIC ${CMAKE_BINARY_DIR} /ToxAv)
160+ target_include_directories (${PROJECT_NAME} PUBLIC ${CMAKE_BINARY_DIR} /ToxCore)
161+ target_include_directories (${PROJECT_NAME} PUBLIC ${CMAKE_BINARY_DIR} /util)
162+
163+ protobuf_generate(TARGET ${PROJECT_NAME} )
164+
187165# Windows and OSX don't have this linker functionality.
188166if (NOT WIN32 AND NOT APPLE )
189167 set_target_properties (
0 commit comments