121 lines
3.5 KiB
CMake
121 lines
3.5 KiB
CMake
|
cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
|
||
|
|
||
|
file(MAKE_DIRECTORY auto/td/telegram)
|
||
|
file(MAKE_DIRECTORY auto/td/mtproto)
|
||
|
|
||
|
set(TL_TD_AUTO_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/auto PARENT_SCOPE)
|
||
|
|
||
|
set(TL_TD_AUTO
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/mtproto/mtproto_api.cpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/mtproto/mtproto_api.h
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/mtproto/mtproto_api.hpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/td_api.cpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/td_api.h
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/td_api.hpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/telegram_api.cpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/telegram_api.h
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/telegram_api.hpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/secret_api.cpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/secret_api.h
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/secret_api.hpp
|
||
|
PARENT_SCOPE
|
||
|
)
|
||
|
|
||
|
set(TL_TD_JSON_AUTO
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/td_api_json.cpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/td_api_json.h
|
||
|
PARENT_SCOPE
|
||
|
)
|
||
|
|
||
|
set(TL_TD_API_TLO ${CMAKE_CURRENT_SOURCE_DIR}/scheme/td_api.tlo PARENT_SCOPE)
|
||
|
|
||
|
set(TL_C_AUTO
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/td_tdc_api.cpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/td_tdc_api.h
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/td_tdc_api_inner.h
|
||
|
PARENT_SCOPE
|
||
|
)
|
||
|
|
||
|
set(TL_GENERATE_COMMON_SOURCE
|
||
|
generate_common.cpp
|
||
|
|
||
|
tl_writer_cpp.cpp
|
||
|
tl_writer_h.cpp
|
||
|
tl_writer_hpp.cpp
|
||
|
tl_writer_jni_cpp.cpp
|
||
|
tl_writer_jni_h.cpp
|
||
|
tl_writer_td.cpp
|
||
|
|
||
|
tl_writer_cpp.h
|
||
|
tl_writer_h.h
|
||
|
tl_writer_hpp.h
|
||
|
tl_writer_jni_cpp.h
|
||
|
tl_writer_jni_h.h
|
||
|
tl_writer_td.h
|
||
|
)
|
||
|
|
||
|
set(TL_GENERATE_C_SOURCE
|
||
|
generate_c.cpp
|
||
|
|
||
|
tl_writer_c.h
|
||
|
)
|
||
|
|
||
|
set(TL_GENERATE_JAVA_SOURCE
|
||
|
generate_java.cpp
|
||
|
|
||
|
tl_writer_java.cpp
|
||
|
|
||
|
tl_writer_java.h
|
||
|
)
|
||
|
|
||
|
set(TL_GENERATE_JSON_SOURCE
|
||
|
generate_json.cpp
|
||
|
|
||
|
tl_json_converter.cpp
|
||
|
|
||
|
tl_json_converter.h
|
||
|
)
|
||
|
|
||
|
if (NOT CMAKE_CROSSCOMPILING)
|
||
|
find_program(PHP_EXECUTABLE php)
|
||
|
|
||
|
if (PHP_EXECUTABLE AND NOT TD_API_JAVA_PACKAGE)
|
||
|
set(GENERATE_COMMON_CMD generate_common && ${PHP_EXECUTABLE} DoxygenTlDocumentationGenerator.php scheme/td_api.tl auto/td/telegram/td_api.h)
|
||
|
else()
|
||
|
set(GENERATE_COMMON_CMD generate_common)
|
||
|
endif()
|
||
|
|
||
|
add_executable(generate_common ${TL_GENERATE_COMMON_SOURCE})
|
||
|
target_link_libraries(generate_common PRIVATE tdtl)
|
||
|
add_custom_target(tl_generate_common
|
||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||
|
COMMAND ${GENERATE_COMMON_CMD}
|
||
|
COMMENT "Generate common tl source files"
|
||
|
DEPENDS generate_common scheme/mtproto_api.tlo scheme/telegram_api.tlo scheme/secret_api.tlo scheme/td_api.tlo
|
||
|
)
|
||
|
if (TD_API_JAVA_PACKAGE)
|
||
|
target_compile_definitions(generate_common PRIVATE TD_API_JAVA_PACKAGE=\"${TD_API_JAVA_PACKAGE}\")
|
||
|
endif()
|
||
|
|
||
|
add_executable(generate_c ${TL_GENERATE_C_SOURCE})
|
||
|
target_link_libraries(generate_c PRIVATE tdtl)
|
||
|
add_custom_target(tl_generate_c
|
||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||
|
COMMAND generate_c
|
||
|
COMMENT "Generate C tl source files"
|
||
|
DEPENDS generate_c scheme/td_api.tlo
|
||
|
)
|
||
|
|
||
|
add_executable(generate_java ${TL_GENERATE_JAVA_SOURCE})
|
||
|
target_link_libraries(generate_java PRIVATE tdtl)
|
||
|
|
||
|
add_executable(generate_json ${TL_GENERATE_JSON_SOURCE})
|
||
|
target_link_libraries(generate_json PRIVATE tdtl tdutils)
|
||
|
add_custom_target(tl_generate_json
|
||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||
|
COMMAND generate_json
|
||
|
COMMENT "Generate JSON tl source files"
|
||
|
DEPENDS generate_json scheme/td_api.tlo
|
||
|
)
|
||
|
endif()
|