Skip to content

Commit

Permalink
Compile all code with cmake.
Browse files Browse the repository at this point in the history
  • Loading branch information
john-preston committed Nov 9, 2019
1 parent c4da31c commit 85060cd
Show file tree
Hide file tree
Showing 17 changed files with 956 additions and 40 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ include(cmake/force_include.cmake)
include(cmake/init_target.cmake)
include(cmake/generate_target.cmake)
include(cmake/nice_target_sources.cmake)
include(cmake/external/qt/package.cmake)

add_subdirectory(cmake)
add_subdirectory(Telegram)
47 changes: 31 additions & 16 deletions Telegram/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,24 @@ add_subdirectory(lib_crl)
add_subdirectory(lib_base)
add_subdirectory(lib_ui)
add_subdirectory(lib_tl)
add_subdirectory(lib_spellcheck)
add_subdirectory(lib_lottie)
add_subdirectory(lib_rlottie)
add_subdirectory(codegen)

include(lib_ui/cmake/generate_styles.cmake)
include(cmake/generate_scheme.cmake)
include(cmake/generate_lang.cmake)
include(cmake/generate_numbers.cmake)

get_filename_component(src_loc "./SourceFiles" REALPATH)
get_filename_component(res_loc "./Resources" REALPATH)
get_filename_component(src_loc SourceFiles REALPATH)
get_filename_component(res_loc Resources REALPATH)

include(cmake/lib_export.cmake)
include(cmake/lib_ffmpeg.cmake)
include(cmake/lib_lz4.cmake)
include(cmake/lib_mtproto.cmake)
include(cmake/lib_scheme.cmake)
include(cmake/lib_tgvoip.cmake)

set(style_files
boxes/boxes.style
Expand All @@ -41,16 +50,23 @@ set(dependent_style_files
${submodules_loc}/lib_ui/ui/widgets/widgets.style
)

set(scheme_files
${res_loc}/tl/mtproto.tl
${res_loc}/tl/api.tl
)

generate_scheme(Telegram ${src_loc}/codegen/scheme/codegen_scheme.py "${scheme_files}")
generate_styles(Telegram ${src_loc} "${style_files}" "${dependent_style_files}")
generate_lang(Telegram ${res_loc}/langs/lang.strings)
generate_numbers(Telegram ${res_loc}/numbers.txt)

target_link_libraries(Telegram
PRIVATE
lib_base
lib_ui
lib_tl
lib_spellcheck
lib_lottie
lib_scheme
lib_export
lib_ffmpeg
lib_tgvoip
)

set(telegram_sources
PRIVATE
api/api_common.h
Expand Down Expand Up @@ -914,17 +930,16 @@ force_include(Telegram stdafx.h)
target_include_directories(Telegram
PRIVATE
${src_loc}
${libs_loc}/zlib
${libs_loc}/lzma/C
${libs_loc}/openal-soft/include
${third_party_loc}/minizip
)

target_compile_definitions(Telegram
PRIVATE
TDESKTOP_API_ID=17349
TDESKTOP_API_HASH=344583e45741c457fe1862106095a5eb
)

target_link_libraries(Telegram
PRIVATE
lib_base
lib_ui
lib_tl
AL_LIBTYPE_STATIC
AL_ALEXT_PROTOTYPES
)
41 changes: 41 additions & 0 deletions Telegram/cmake/lib_export.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
add_library(lib_export OBJECT)
init_target(lib_export)

set(lib_export_sources
PRIVATE
export/export_api_wrap.cpp
export/export_api_wrap.h
export/export_controller.cpp
export/export_controller.h
export/export_settings.cpp
export/export_settings.h
export/data/export_data_types.cpp
export/data/export_data_types.h
export/output/export_output_abstract.cpp
export/output/export_output_abstract.h
export/output/export_output_file.cpp
export/output/export_output_file.h
export/output/export_output_html.cpp
export/output/export_output_html.h
export/output/export_output_json.cpp
export/output/export_output_json.h
export/output/export_output_result.h
export/output/export_output_stats.cpp
export/output/export_output_stats.h
export/output/export_output_text.cpp
export/output/export_output_text.h
)
nice_target_sources(lib_export ${src_loc} "${lib_export_sources}")

force_include(lib_export export/export_pch.h)

target_include_directories(lib_export
PUBLIC
${src_loc}
)

target_link_libraries(lib_export
PUBLIC
lib_base
lib_scheme
)
20 changes: 20 additions & 0 deletions Telegram/cmake/lib_ffmpeg.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
add_library(lib_ffmpeg OBJECT)
init_target(lib_ffmpeg)

set(lib_ffmpeg_sources
PRIVATE
ffmpeg/ffmpeg_utility.cpp
ffmpeg/ffmpeg_utility.h
)
nice_target_sources(lib_ffmpeg ${src_loc} "${lib_ffmpeg_sources}")

target_include_directories(lib_ffmpeg
PUBLIC
${src_loc}
${libs_loc}/ffmpeg
)

target_link_libraries(lib_ffmpeg
PUBLIC
lib_base
)
22 changes: 22 additions & 0 deletions Telegram/cmake/lib_lz4.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
add_library(lib_lz4 OBJECT)
init_target(lib_lz4)

set(lz4_loc ${third_party_loc}/lz4/lib)

target_sources(lib_lz4
PRIVATE
${lz4_loc}/lz4.c
${lz4_loc}/lz4.h
${lz4_loc}/lz4frame.c
${lz4_loc}/lz4frame.h
${lz4_loc}/lz4frame_static.h
${lz4_loc}/lz4hc.c
${lz4_loc}/lz4hc.h
${lz4_loc}/xxhash.c
${lz4_loc}/xxhash.h
)

target_include_directories(lib_lz4
PUBLIC
${lz4_loc}
)
25 changes: 25 additions & 0 deletions Telegram/cmake/lib_mtproto.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
add_library(lib_mtproto OBJECT)
init_target(lib_mtproto)

set(lib_mtproto_sources
PRIVATE
mtproto/mtp_abstract_socket.cpp
mtproto/mtp_abstract_socket.h
mtproto/mtp_tcp_socket.cpp
mtproto/mtp_tcp_socket.h
mtproto/mtp_tls_socket.cpp
mtproto/mtp_tls_socket.h
)
nice_target_sources(lib_mtproto ${src_loc} "${lib_mtproto_sources}")

force_include(lib_mtproto mtproto/mtp_pch.h)

target_include_directories(lib_mtproto
PUBLIC
${src_loc}
)

target_link_libraries(lib_mtproto
PUBLIC
lib_scheme
)
22 changes: 22 additions & 0 deletions Telegram/cmake/lib_scheme.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
add_library(lib_scheme OBJECT)
init_target(lib_scheme)

include(cmake/generate_scheme.cmake)

set(scheme_files
${res_loc}/tl/mtproto.tl
${res_loc}/tl/api.tl
)

generate_scheme(lib_scheme ${src_loc}/codegen/scheme/codegen_scheme.py "${scheme_files}")

target_include_directories(lib_scheme
PUBLIC
${src_loc}
)

target_link_libraries(lib_scheme
PUBLIC
lib_base
lib_tl
)
Loading

0 comments on commit 85060cd

Please sign in to comment.