summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt6
-rw-r--r--cmake/core.cmake10
-rw-r--r--cmake/lib.cmake10
-rw-r--r--cmake/plugin.cmake10
-rw-r--r--libs/CMakeLists.txt3
-rw-r--r--libs/libevent/CMakeLists.txt6
-rw-r--r--libs/libjson/CMakeLists.txt7
-rw-r--r--plugins/Db3x_mmap/CMakeLists.txt5
-rw-r--r--protocols/AimOscar/CMakeLists.txt4
-rw-r--r--protocols/AimOscar/proto_aim/CMakeLists.txt2
-rw-r--r--protocols/CMakeLists.txt22
-rw-r--r--protocols/Discord/CMakeLists.txt5
-rw-r--r--protocols/Discord/proto_discord/CMakeLists.txt2
-rw-r--r--protocols/Dummy/CMakeLists.txt4
-rw-r--r--protocols/Dummy/proto_dummy/CMakeLists.txt2
-rw-r--r--protocols/EmLanProto/CMakeLists.txt5
-rw-r--r--protocols/Gadu-Gadu/CMakeLists.txt40
-rw-r--r--protocols/Gadu-Gadu/proto_gg/CMakeLists.txt2
-rw-r--r--protocols/ICQCorp/CMakeLists.txt15
-rw-r--r--protocols/IRCG/CMakeLists.txt4
-rw-r--r--protocols/IRCG/proto_irc/CMakeLists.txt2
-rw-r--r--protocols/IcqOscarJ/CMakeLists.txt5
-rw-r--r--protocols/IcqOscarJ/icq_xstatus/CMakeLists.txt2
-rw-r--r--protocols/IcqOscarJ/proto_icq/CMakeLists.txt2
-rw-r--r--protocols/MRA/CMakeLists.txt6
-rw-r--r--protocols/MRA/proto_mra/CMakeLists.txt2
-rw-r--r--protocols/MRA/xstatus_mra/CMakeLists.txt2
-rw-r--r--protocols/MinecraftDynmap/CMakeLists.txt4
-rw-r--r--protocols/MinecraftDynmap/proto_minecraftdynmap/CMakeLists.txt2
-rw-r--r--protocols/Omegle/CMakeLists.txt4
-rw-r--r--protocols/Omegle/proto_omegle/CMakeLists.txt2
-rw-r--r--protocols/Sametime/CMakeLists.txt38
-rw-r--r--protocols/Sametime/proto_sametime/CMakeLists.txt2
-rw-r--r--protocols/Sametime/src/glib/CMakeLists.txt82
-rw-r--r--protocols/Slack/CMakeLists.txt3
-rw-r--r--protocols/Steam/CMakeLists.txt4
-rw-r--r--protocols/Steam/proto_steam/CMakeLists.txt2
-rw-r--r--protocols/Telegram/CMakeLists.txt29
-rw-r--r--protocols/Tlen/CMakeLists.txt4
-rw-r--r--protocols/Tlen/proto_tlen/CMakeLists.txt2
-rw-r--r--protocols/Tox/CMakeLists.txt7
-rw-r--r--protocols/Tox/proto_tox/CMakeLists.txt2
-rw-r--r--protocols/Twitter/CMakeLists.txt5
-rw-r--r--protocols/Twitter/proto_twitter/CMakeLists.txt2
-rw-r--r--protocols/VKontakte/CMakeLists.txt5
-rw-r--r--protocols/VKontakte/proto_vkontakte/CMakeLists.txt2
-rw-r--r--protocols/WhatsApp/CMakeLists.txt4
-rw-r--r--protocols/WhatsApp/proto_whatsapp/CMakeLists.txt2
-rw-r--r--src/mir_app/CMakeLists.txt7
-rw-r--r--src/mir_core/CMakeLists.txt10
-rw-r--r--src/miranda32/CMakeLists.txt9
51 files changed, 406 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd22000a6e..5328c8ddf4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,11 @@ cmake_minimum_required (VERSION 2.8)
project (Miranda)
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "_UNICODE;UNICODE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS")
-link_directories(${CMAKE_SOURCE_DIR}/libs/win32)
+if(CMAKE_CL_64)
+ link_directories(${CMAKE_SOURCE_DIR}/libs/win64)
+else()
+ link_directories(${CMAKE_SOURCE_DIR}/libs/win32)
+endif()
include_directories(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/include/msapi ${CMAKE_SOURCE_DIR}/plugins/ExternalAPI)
set(COMMON_LIBS winmm.lib Wtsapi32.lib netapi32.lib pdh.lib shlwapi.lib Strmiids.lib gdiplus.lib dbghelp.lib Setupapi.lib msimg32.lib comctl32.lib ws2_32.lib UxTheme.lib)
diff --git a/cmake/core.cmake b/cmake/core.cmake
index 7c8677d4e1..5fc7c37302 100644
--- a/cmake/core.cmake
+++ b/cmake/core.cmake
@@ -1,6 +1,14 @@
include_directories(.)
file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
-add_library(${TARGET} SHARED ${SOURCES})
+set(STDAFX "${CMAKE_CURRENT_SOURCE_DIR}/src/stdafx.cxx")
+if ((EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/stdafx.h") AND (EXISTS ${STDAFX}))
+ file(GLOB PRECOMPILED_SOURCES "src/*.cpp")
+ SET_SOURCE_FILES_PROPERTIES(${PRECOMPILED_SOURCES} PROPERTIES COMPILE_FLAGS "/Yu")
+ SET_SOURCE_FILES_PROPERTIES(${STDAFX} PROPERTIES COMPILE_FLAGS "/Yc")
+ add_library(${TARGET} SHARED ${STDAFX} ${SOURCES})
+else()
+ add_library(${TARGET} SHARED ${SOURCES})
+endif()
set_target_properties(${TARGET} PROPERTIES
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/$<CONFIG>/Core"
diff --git a/cmake/lib.cmake b/cmake/lib.cmake
index 7c94c732e3..64ceb02bd5 100644
--- a/cmake/lib.cmake
+++ b/cmake/lib.cmake
@@ -1,4 +1,12 @@
-add_library(${TARGET} SHARED ${SOURCES})
+set(STDAFX "${CMAKE_CURRENT_SOURCE_DIR}/src/stdafx.cxx")
+if ((EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/stdafx.h") AND (EXISTS ${STDAFX}))
+ file(GLOB PRECOMPILED_SOURCES "src/*.cpp")
+ SET_SOURCE_FILES_PROPERTIES(${PRECOMPILED_SOURCES} PROPERTIES COMPILE_FLAGS "/Yu")
+ SET_SOURCE_FILES_PROPERTIES(${STDAFX} PROPERTIES COMPILE_FLAGS "/Yc")
+ add_library(${TARGET} SHARED ${STDAFX} ${SOURCES})
+else()
+ add_library(${TARGET} SHARED ${SOURCES})
+endif()
set_target_properties(${TARGET} PROPERTIES
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
SUFFIX ".mir"
diff --git a/cmake/plugin.cmake b/cmake/plugin.cmake
index 9d3efac2e0..d3986c87c3 100644
--- a/cmake/plugin.cmake
+++ b/cmake/plugin.cmake
@@ -1,4 +1,12 @@
-add_library(${TARGET} SHARED ${SOURCES})
+set(STDAFX "${CMAKE_CURRENT_SOURCE_DIR}/src/stdafx.cxx")
+if ((EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/stdafx.h") AND (EXISTS ${STDAFX}))
+ file(GLOB PRECOMPILED_SOURCES "src/*.cpp")
+ SET_SOURCE_FILES_PROPERTIES(${PRECOMPILED_SOURCES} PROPERTIES COMPILE_FLAGS "/Yu")
+ SET_SOURCE_FILES_PROPERTIES(${STDAFX} PROPERTIES COMPILE_FLAGS "/Yc")
+ add_library(${TARGET} SHARED ${STDAFX} ${SOURCES})
+else()
+ add_library(${TARGET} SHARED ${SOURCES})
+endif()
set_target_properties(${TARGET} PROPERTIES
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/$<CONFIG>/Plugins"
diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt
index 5c360a5ef0..67fdb72838 100644
--- a/libs/CMakeLists.txt
+++ b/libs/CMakeLists.txt
@@ -1,3 +1,4 @@
add_subdirectory(zlib)
add_subdirectory(libjson)
-add_subdirectory(libaxolotl) \ No newline at end of file
+add_subdirectory(libaxolotl)
+add_subdirectory(libevent) \ No newline at end of file
diff --git a/libs/libevent/CMakeLists.txt b/libs/libevent/CMakeLists.txt
new file mode 100644
index 0000000000..ce54ab9827
--- /dev/null
+++ b/libs/libevent/CMakeLists.txt
@@ -0,0 +1,6 @@
+file(GLOB SOURCES "src/*.h" "src/*.c" "src/WIN32-Code/*.c")
+set(TARGET libevent)
+include_directories("include" "src/compat")
+include(${CMAKE_SOURCE_DIR}/cmake/lib.cmake)
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "EVENT__NEED_DLLIMPORT")
+target_link_libraries(${TARGET} libeay32.lib ssleay32.lib) \ No newline at end of file
diff --git a/libs/libjson/CMakeLists.txt b/libs/libjson/CMakeLists.txt
index e76677a636..62b68e2eb2 100644
--- a/libs/libjson/CMakeLists.txt
+++ b/libs/libjson/CMakeLists.txt
@@ -1,4 +1,9 @@
-file(GLOB SOURCES "src/*.h" "src/*.cpp" "src/libjson.def")
+file(GLOB SOURCES "src/*.h" "src/*.cpp")
+if(CMAKE_CL_64)
+ list(APPEND SOURCES "src/libjson64.def")
+else()
+ list(APPEND SOURCES "src/libjson.def")
+endif()
set(TARGET libjson)
include(${CMAKE_SOURCE_DIR}/cmake/lib.cmake)
diff --git a/plugins/Db3x_mmap/CMakeLists.txt b/plugins/Db3x_mmap/CMakeLists.txt
index eee167c6a9..d30807aa46 100644
--- a/plugins/Db3x_mmap/CMakeLists.txt
+++ b/plugins/Db3x_mmap/CMakeLists.txt
@@ -1,3 +1,8 @@
file(GLOB SOURCES "src/*.h" "src/*.cpp" "src/dbtool/*.cpp" "res/*.rc")
set(TARGET Dbx_mmap)
+
+# Just a workaround. Better to fix plugins that do not compile with this option.
+# Even Microsoft recommends to use standard exception handling.
+string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+
include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake) \ No newline at end of file
diff --git a/protocols/AimOscar/CMakeLists.txt b/protocols/AimOscar/CMakeLists.txt
new file mode 100644
index 0000000000..adb9dbb828
--- /dev/null
+++ b/protocols/AimOscar/CMakeLists.txt
@@ -0,0 +1,4 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET AIM)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_aim) \ No newline at end of file
diff --git a/protocols/AimOscar/proto_aim/CMakeLists.txt b/protocols/AimOscar/proto_aim/CMakeLists.txt
new file mode 100644
index 0000000000..883d656e17
--- /dev/null
+++ b/protocols/AimOscar/proto_aim/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_AIM)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/CMakeLists.txt b/protocols/CMakeLists.txt
index 0c4b8d722e..e3c6bfff44 100644
--- a/protocols/CMakeLists.txt
+++ b/protocols/CMakeLists.txt
@@ -1,4 +1,24 @@
+#add_subdirectory(AimOscar)
+#add_subdirectory(Discord)
+#add_subdirectory(Dummy)
+#add_subdirectory(EmLanProto)
add_subdirectory(FacebookRM)
+#add_subdirectory(Gadu-Gadu)
+#add_subdirectory(ICQCorp)
+add_subdirectory(IcqOscarJ)
+add_subdirectory(IRCG)
add_subdirectory(JabberG)
+#add_subdirectory(MinecraftDynmap)
+#add_subdirectory(MRA)
add_subdirectory(MSN)
-add_subdirectory(SkypeWeb) \ No newline at end of file
+#add_subdirectory(Omegle)
+#add_subdirectory(Sametime)
+add_subdirectory(SkypeWeb)
+#add_subdirectory(Slack)
+add_subdirectory(Steam)
+#add_subdirectory(Telegram)
+#add_subdirectory(Tlen)
+#add_subdirectory(Tox)
+add_subdirectory(Twitter)
+add_subdirectory(VKontakte)
+#add_subdirectory(WhatsApp) \ No newline at end of file
diff --git a/protocols/Discord/CMakeLists.txt b/protocols/Discord/CMakeLists.txt
new file mode 100644
index 0000000000..a227eff6df
--- /dev/null
+++ b/protocols/Discord/CMakeLists.txt
@@ -0,0 +1,5 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET Discord)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+target_link_libraries(${TARGET} Zlib libjson)
+add_subdirectory(proto_discord) \ No newline at end of file
diff --git a/protocols/Discord/proto_discord/CMakeLists.txt b/protocols/Discord/proto_discord/CMakeLists.txt
new file mode 100644
index 0000000000..5ea6891fa1
--- /dev/null
+++ b/protocols/Discord/proto_discord/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_Discord)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/Dummy/CMakeLists.txt b/protocols/Dummy/CMakeLists.txt
new file mode 100644
index 0000000000..2fedfcaa24
--- /dev/null
+++ b/protocols/Dummy/CMakeLists.txt
@@ -0,0 +1,4 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET Dummy)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_dummy) \ No newline at end of file
diff --git a/protocols/Dummy/proto_dummy/CMakeLists.txt b/protocols/Dummy/proto_dummy/CMakeLists.txt
new file mode 100644
index 0000000000..3396e1c992
--- /dev/null
+++ b/protocols/Dummy/proto_dummy/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_Dummy)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/EmLanProto/CMakeLists.txt b/protocols/EmLanProto/CMakeLists.txt
new file mode 100644
index 0000000000..c109f097f4
--- /dev/null
+++ b/protocols/EmLanProto/CMakeLists.txt
@@ -0,0 +1,5 @@
+set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "")
+
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET EmLanProto)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake) \ No newline at end of file
diff --git a/protocols/Gadu-Gadu/CMakeLists.txt b/protocols/Gadu-Gadu/CMakeLists.txt
new file mode 100644
index 0000000000..9ab4671f22
--- /dev/null
+++ b/protocols/Gadu-Gadu/CMakeLists.txt
@@ -0,0 +1,40 @@
+file(GLOB SOURCES "src/*.h" "src/libgadu/*.h" "res/*.rc"
+"src/avatar.cpp"
+"src/core.cpp"
+"src/dialogs.cpp"
+"src/dynstuff.cpp"
+"src/filetransfer.cpp"
+"src/stdafx.cpp"
+"src/gg_proto.cpp"
+"src/groupchat.cpp"
+"src/icolib.cpp"
+"src/image.cpp"
+"src/import.cpp"
+"src/keepalive.cpp"
+"src/links.cpp"
+"src/oauth.cpp"
+"src/ownerinfo.cpp"
+"src/popups.cpp"
+"src/services.cpp"
+"src/sessions.cpp"
+"src/gg.cpp"
+"src/token.cpp"
+"src/userutils.cpp"
+"src/libgadu/common.cpp"
+"src/libgadu/dcc.cpp"
+"src/libgadu/dcc7.cpp"
+"src/libgadu/events.cpp"
+"src/libgadu/http.cpp"
+"src/libgadu/libgadu.cpp"
+"src/libgadu/pthread.cpp"
+"src/libgadu/pubdir.cpp"
+"src/libgadu/pubdir50.cpp"
+"src/libgadu/resolver.cpp"
+"src/libgadu/sha1.cpp"
+"src/libgadu/win32.cpp"
+)
+set(TARGET GG)
+include_directories("src/libgadu")
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "GG_EXPORTS")
+add_subdirectory(proto_gg) \ No newline at end of file
diff --git a/protocols/Gadu-Gadu/proto_gg/CMakeLists.txt b/protocols/Gadu-Gadu/proto_gg/CMakeLists.txt
new file mode 100644
index 0000000000..5b26e158f6
--- /dev/null
+++ b/protocols/Gadu-Gadu/proto_gg/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_GG)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/ICQCorp/CMakeLists.txt b/protocols/ICQCorp/CMakeLists.txt
new file mode 100644
index 0000000000..9e3d58ba26
--- /dev/null
+++ b/protocols/ICQCorp/CMakeLists.txt
@@ -0,0 +1,15 @@
+set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "")
+
+file(GLOB SOURCES "src/*.h" "res/*.rc"
+"src/corp.cpp"
+"src/event.cpp"
+"src/options.cpp"
+"src/packet.cpp"
+"src/protocol.cpp"
+"src/services.cpp"
+"src/socket.cpp"
+"src/transfer.cpp"
+"src/user.cpp"
+)
+set(TARGET ICQCorp)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake) \ No newline at end of file
diff --git a/protocols/IRCG/CMakeLists.txt b/protocols/IRCG/CMakeLists.txt
new file mode 100644
index 0000000000..a281099459
--- /dev/null
+++ b/protocols/IRCG/CMakeLists.txt
@@ -0,0 +1,4 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET IRC)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_irc) \ No newline at end of file
diff --git a/protocols/IRCG/proto_irc/CMakeLists.txt b/protocols/IRCG/proto_irc/CMakeLists.txt
new file mode 100644
index 0000000000..6b91141bc8
--- /dev/null
+++ b/protocols/IRCG/proto_irc/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_IRC)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/IcqOscarJ/CMakeLists.txt b/protocols/IcqOscarJ/CMakeLists.txt
new file mode 100644
index 0000000000..f5c241229b
--- /dev/null
+++ b/protocols/IcqOscarJ/CMakeLists.txt
@@ -0,0 +1,5 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET ICQ)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_icq)
+add_subdirectory(icq_xstatus) \ No newline at end of file
diff --git a/protocols/IcqOscarJ/icq_xstatus/CMakeLists.txt b/protocols/IcqOscarJ/icq_xstatus/CMakeLists.txt
new file mode 100644
index 0000000000..388679a148
--- /dev/null
+++ b/protocols/IcqOscarJ/icq_xstatus/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET xStatus_ICQ)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/IcqOscarJ/proto_icq/CMakeLists.txt b/protocols/IcqOscarJ/proto_icq/CMakeLists.txt
new file mode 100644
index 0000000000..596ac21624
--- /dev/null
+++ b/protocols/IcqOscarJ/proto_icq/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_ICQ)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/MRA/CMakeLists.txt b/protocols/MRA/CMakeLists.txt
new file mode 100644
index 0000000000..6626c8d0cc
--- /dev/null
+++ b/protocols/MRA/CMakeLists.txt
@@ -0,0 +1,6 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET MRA)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+target_link_libraries(${TARGET} Zlib)
+add_subdirectory(proto_mra)
+add_subdirectory(xstatus_mra) \ No newline at end of file
diff --git a/protocols/MRA/proto_mra/CMakeLists.txt b/protocols/MRA/proto_mra/CMakeLists.txt
new file mode 100644
index 0000000000..f73e541f0b
--- /dev/null
+++ b/protocols/MRA/proto_mra/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_MRA)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/MRA/xstatus_mra/CMakeLists.txt b/protocols/MRA/xstatus_mra/CMakeLists.txt
new file mode 100644
index 0000000000..3f6ad79d54
--- /dev/null
+++ b/protocols/MRA/xstatus_mra/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET xStatus_MRA)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/MinecraftDynmap/CMakeLists.txt b/protocols/MinecraftDynmap/CMakeLists.txt
new file mode 100644
index 0000000000..3cd58e95c3
--- /dev/null
+++ b/protocols/MinecraftDynmap/CMakeLists.txt
@@ -0,0 +1,4 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc" "${CMAKE_SOURCE_DIR}/utils/std_string_utils.cpp")
+set(TARGET MinecraftDynmap)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_minecraftdynmap) \ No newline at end of file
diff --git a/protocols/MinecraftDynmap/proto_minecraftdynmap/CMakeLists.txt b/protocols/MinecraftDynmap/proto_minecraftdynmap/CMakeLists.txt
new file mode 100644
index 0000000000..918d7201dc
--- /dev/null
+++ b/protocols/MinecraftDynmap/proto_minecraftdynmap/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_MinecraftDynmap)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/Omegle/CMakeLists.txt b/protocols/Omegle/CMakeLists.txt
new file mode 100644
index 0000000000..0a4459825e
--- /dev/null
+++ b/protocols/Omegle/CMakeLists.txt
@@ -0,0 +1,4 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc" "${CMAKE_SOURCE_DIR}/utils/std_string_utils.cpp")
+set(TARGET Omegle)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_omegle) \ No newline at end of file
diff --git a/protocols/Omegle/proto_omegle/CMakeLists.txt b/protocols/Omegle/proto_omegle/CMakeLists.txt
new file mode 100644
index 0000000000..0842765ef2
--- /dev/null
+++ b/protocols/Omegle/proto_omegle/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_Omegle)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/Sametime/CMakeLists.txt b/protocols/Sametime/CMakeLists.txt
new file mode 100644
index 0000000000..03fafd6760
--- /dev/null
+++ b/protocols/Sametime/CMakeLists.txt
@@ -0,0 +1,38 @@
+file(GLOB SOURCES "src/*.h" "res/*.rc"
+"src/conference.cpp"
+"src/files.cpp"
+"src/messaging.cpp"
+"src/options.cpp"
+"src/places.cpp"
+"src/sametime.cpp"
+"src/sametime_proto.cpp"
+"src/sametime_session.cpp"
+"src/session_announce_win.cpp"
+"src/userlist.cpp"
+"src/utils.cpp"
+"src/meanwhile/src/channel.c"
+"src/meanwhile/src/cipher.c"
+"src/meanwhile/src/common.c"
+"src/meanwhile/src/error.c"
+"src/meanwhile/src/message.c"
+"src/meanwhile/src/mpi/mpi.c"
+"src/meanwhile/src/mw_debug.c"
+"src/meanwhile/src/mw_util.c"
+"src/meanwhile/src/service.c"
+"src/meanwhile/src/session.c"
+"src/meanwhile/src/srvc_aware.c"
+"src/meanwhile/src/srvc_conf.c"
+"src/meanwhile/src/srvc_dir.c"
+"src/meanwhile/src/srvc_ft.c"
+"src/meanwhile/src/srvc_im.c"
+"src/meanwhile/src/srvc_place.c"
+"src/meanwhile/src/srvc_resolve.c"
+"src/meanwhile/src/srvc_store.c"
+"src/meanwhile/src/st_list.c"
+)
+set(TARGET Sametime)
+include_directories("src" "src/glib" "src/meanwhile/src")
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+target_link_libraries(${TARGET} glib)
+add_subdirectory(proto_sametime)
+add_subdirectory(src/glib) \ No newline at end of file
diff --git a/protocols/Sametime/proto_sametime/CMakeLists.txt b/protocols/Sametime/proto_sametime/CMakeLists.txt
new file mode 100644
index 0000000000..b0b9cd2707
--- /dev/null
+++ b/protocols/Sametime/proto_sametime/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_Sametime)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/Sametime/src/glib/CMakeLists.txt b/protocols/Sametime/src/glib/CMakeLists.txt
new file mode 100644
index 0000000000..3c18c15003
--- /dev/null
+++ b/protocols/Sametime/src/glib/CMakeLists.txt
@@ -0,0 +1,82 @@
+set(TARGET glib)
+add_library(${TARGET}
+"garray.c"
+"gasyncqueue.c"
+"gatomic.c"
+"gbacktrace.c"
+"gbase64.c"
+"gbitlock.c"
+"gbookmarkfile.c"
+"gbuffer.c"
+"gcache.c"
+"gchecksum.c"
+"gcompletion.c"
+"gconvert.c"
+"gdataset.c"
+"gdate.c"
+"gdatetime.c"
+"gdir.c"
+"gerror.c"
+"gfileutils.c"
+"ghash.c"
+"ghook.c"
+"ghostutils.c"
+"giochannel.c"
+"giowin32.c"
+"gkeyfile.c"
+"glist.c"
+"gmain.c"
+"gmappedfile.c"
+"gmarkup.c"
+"gmem.c"
+"gmessages.c"
+"gnode.c"
+"gnulib/asnprintf.c"
+"gnulib/printf-args.c"
+"gnulib/printf-parse.c"
+"gnulib/printf.c"
+"gnulib/vasnprintf.c"
+"goption.c"
+"gpattern.c"
+"gpoll.c"
+"gprimes.c"
+"gprintf.c"
+"gqsort.c"
+"gqueue.c"
+"grand.c"
+"gregex.c"
+"grel.c"
+"gscanner.c"
+"gsequence.c"
+"gshell.c"
+"gslice.c"
+"gslist.c"
+"gspawn-win32-helper.c"
+"gspawn-win32.c"
+"gstdio.c"
+"gstrfuncs.c"
+"gstring.c"
+"gtestutils.c"
+"gthread.c"
+"gthreadpool.c"
+"gtimer.c"
+"gtimezone.c"
+"gtree.c"
+"gunibreak.c"
+"gunicollate.c"
+"gunidecomp.c"
+"guniprop.c"
+"gurifuncs.c"
+"gutf8.c"
+"gutils.c"
+"gvariant-core.c"
+"gvariant-parser.c"
+"gvariant-serialiser.c"
+"gvariant.c"
+"gvarianttype.c"
+"gvarianttypeinfo.c"
+"gwin32.c"
+"libcharset/localcharset.c"
+"libintl.c"
+)
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "GLIB_COMPILATION") \ No newline at end of file
diff --git a/protocols/Slack/CMakeLists.txt b/protocols/Slack/CMakeLists.txt
new file mode 100644
index 0000000000..44059cf3af
--- /dev/null
+++ b/protocols/Slack/CMakeLists.txt
@@ -0,0 +1,3 @@
+file(GLOB SOURCES "src/*.h" "src/api/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET Slack)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake) \ No newline at end of file
diff --git a/protocols/Steam/CMakeLists.txt b/protocols/Steam/CMakeLists.txt
new file mode 100644
index 0000000000..4f76cb5bf9
--- /dev/null
+++ b/protocols/Steam/CMakeLists.txt
@@ -0,0 +1,4 @@
+file(GLOB SOURCES "src/*.h" "src/api/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET Steam)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_steam) \ No newline at end of file
diff --git a/protocols/Steam/proto_steam/CMakeLists.txt b/protocols/Steam/proto_steam/CMakeLists.txt
new file mode 100644
index 0000000000..436cbf7985
--- /dev/null
+++ b/protocols/Steam/proto_steam/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_Steam)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/Telegram/CMakeLists.txt b/protocols/Telegram/CMakeLists.txt
new file mode 100644
index 0000000000..6fd3fc555a
--- /dev/null
+++ b/protocols/Telegram/CMakeLists.txt
@@ -0,0 +1,29 @@
+file(GLOB SOURCES "src/*.h" "res/*.rc"
+"src/tgl/auto/auto-autocomplete.c"
+"src/tgl/auto/auto-fetch-ds.c"
+"src/tgl/auto/auto-fetch.c"
+"src/tgl/auto/auto-free-ds.c"
+"src/tgl/auto/auto-print-ds.c"
+"src/tgl/auto/auto-skip.c"
+"src/tgl/auto/auto-store-ds.c"
+"src/tgl/auto/auto-store.c"
+"src/tgl/auto/auto-types.c"
+"src/tgl/binlog.c"
+"src/tgl/mime-types.c"
+"src/tgl/mtproto-client.c"
+"src/tgl/mtproto-common.c"
+"src/tgl/mtproto-utils.c"
+"src/tgl/queries.c"
+"src/tgl/structures.c"
+"src/tgl/tg-mime-types.c"
+"src/tgl/tgl-net.c"
+"src/tgl/tgl-timers.c"
+"src/tgl/tgl.c"
+"src/tgl/tools.c"
+"src/tgl/updates.c"
+)
+include_directories(${CMAKE_SOURCE_DIR}/libs/libevent/include)
+set(TARGET Telegram)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "HAVE_CONFIG_H")
+target_link_libraries(${TARGET} Zlib libevent libeay32.lib ssleay32.lib) \ No newline at end of file
diff --git a/protocols/Tlen/CMakeLists.txt b/protocols/Tlen/CMakeLists.txt
new file mode 100644
index 0000000000..6fe51db6d5
--- /dev/null
+++ b/protocols/Tlen/CMakeLists.txt
@@ -0,0 +1,4 @@
+file(GLOB SOURCES "src/*.h" "src/crypto/polarssl/*.h" "src/codec/*.h" "src/*.cpp" "src/crypto/*.c" "src/codec/*.c" "res/*.rc")
+set(TARGET Tlen)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_tlen) \ No newline at end of file
diff --git a/protocols/Tlen/proto_tlen/CMakeLists.txt b/protocols/Tlen/proto_tlen/CMakeLists.txt
new file mode 100644
index 0000000000..4dec7da57c
--- /dev/null
+++ b/protocols/Tlen/proto_tlen/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_Tlen)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/Tox/CMakeLists.txt b/protocols/Tox/CMakeLists.txt
new file mode 100644
index 0000000000..88144b9949
--- /dev/null
+++ b/protocols/Tox/CMakeLists.txt
@@ -0,0 +1,7 @@
+file(GLOB SOURCES "src/*.h" "include/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET Tox)
+include_directories("include")
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+target_link_libraries(${TARGET} libjson Winmm.lib dnsapi.lib comctl32.lib)
+add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND "make_ver.bat x86 ${CMAKE_BINARY_DIR}/Libs")
+add_subdirectory(proto_tox) \ No newline at end of file
diff --git a/protocols/Tox/proto_tox/CMakeLists.txt b/protocols/Tox/proto_tox/CMakeLists.txt
new file mode 100644
index 0000000000..680b9dc369
--- /dev/null
+++ b/protocols/Tox/proto_tox/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_Tox)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/Twitter/CMakeLists.txt b/protocols/Twitter/CMakeLists.txt
new file mode 100644
index 0000000000..6f43f21232
--- /dev/null
+++ b/protocols/Twitter/CMakeLists.txt
@@ -0,0 +1,5 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET Twitter)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+target_link_libraries(${TARGET} libjson)
+add_subdirectory(proto_twitter) \ No newline at end of file
diff --git a/protocols/Twitter/proto_twitter/CMakeLists.txt b/protocols/Twitter/proto_twitter/CMakeLists.txt
new file mode 100644
index 0000000000..f7b45f0ca7
--- /dev/null
+++ b/protocols/Twitter/proto_twitter/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_Twitter)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/VKontakte/CMakeLists.txt b/protocols/VKontakte/CMakeLists.txt
new file mode 100644
index 0000000000..5de2c6962d
--- /dev/null
+++ b/protocols/VKontakte/CMakeLists.txt
@@ -0,0 +1,5 @@
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+set(TARGET VKontakte)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+target_link_libraries(${TARGET} libjson)
+add_subdirectory(proto_vkontakte) \ No newline at end of file
diff --git a/protocols/VKontakte/proto_vkontakte/CMakeLists.txt b/protocols/VKontakte/proto_vkontakte/CMakeLists.txt
new file mode 100644
index 0000000000..bde4bac94b
--- /dev/null
+++ b/protocols/VKontakte/proto_vkontakte/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_VKontakte)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/protocols/WhatsApp/CMakeLists.txt b/protocols/WhatsApp/CMakeLists.txt
new file mode 100644
index 0000000000..cbca8a0ba4
--- /dev/null
+++ b/protocols/WhatsApp/CMakeLists.txt
@@ -0,0 +1,4 @@
+file(GLOB SOURCES "src/*.h" "src/WhatsAPI++/*.h" "src/*.cpp" "src/OpenSSL/*.c" "src/WhatsAPI++/*.cpp" "res/*.rc")
+set(TARGET WhatsApp)
+include(${CMAKE_SOURCE_DIR}/cmake/plugin.cmake)
+add_subdirectory(proto_whatsapp) \ No newline at end of file
diff --git a/protocols/WhatsApp/proto_whatsapp/CMakeLists.txt b/protocols/WhatsApp/proto_whatsapp/CMakeLists.txt
new file mode 100644
index 0000000000..5193619806
--- /dev/null
+++ b/protocols/WhatsApp/proto_whatsapp/CMakeLists.txt
@@ -0,0 +1,2 @@
+set(TARGET Proto_WhatsApp)
+include(${CMAKE_SOURCE_DIR}/cmake/icons.cmake) \ No newline at end of file
diff --git a/src/mir_app/CMakeLists.txt b/src/mir_app/CMakeLists.txt
index 8e72c06f59..fa73635191 100644
--- a/src/mir_app/CMakeLists.txt
+++ b/src/mir_app/CMakeLists.txt
@@ -1,4 +1,9 @@
-file(GLOB SOURCES "src/*.h" "src/*.cpp" "src/mir_app.def" "res/*.rc")
+file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
+if(CMAKE_CL_64)
+ list(APPEND SOURCES "src/mir_app64.def")
+else()
+ list(APPEND SOURCES "src/mir_app.def")
+endif()
set(TARGET mir_app)
include(${CMAKE_SOURCE_DIR}/cmake/lib.cmake)
diff --git a/src/mir_core/CMakeLists.txt b/src/mir_core/CMakeLists.txt
index aaaacf1312..d9ad3b5ba2 100644
--- a/src/mir_core/CMakeLists.txt
+++ b/src/mir_core/CMakeLists.txt
@@ -1,5 +1,11 @@
-file(GLOB SOURCES "src/*.h" "src/*.cpp" "src/mir_core.def")
+file(GLOB SOURCES "src/*.h" "src/*.cpp")
+if(CMAKE_CL_64)
+ list(APPEND SOURCES "src/mir_core64.def")
+else()
+ list(APPEND SOURCES "src/mir_core.def")
+endif()
set(TARGET mir_core)
include(${CMAKE_SOURCE_DIR}/cmake/lib.cmake)
-set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "MIR_CORE_EXPORTS") \ No newline at end of file
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "MIR_CORE_EXPORTS")
+add_custom_command(TARGET ${TARGET} PRE_BUILD COMMAND "${CMAKE_SOURCE_DIR}/build/make_ver.bat") \ No newline at end of file
diff --git a/src/miranda32/CMakeLists.txt b/src/miranda32/CMakeLists.txt
index 1ca94b3a1d..2375cb76d6 100644
--- a/src/miranda32/CMakeLists.txt
+++ b/src/miranda32/CMakeLists.txt
@@ -1,7 +1,12 @@
file(GLOB SOURCES "src/*.h" "src/*.cpp" "res/*.rc")
-add_executable(miranda32 ${SOURCES})
+if(CMAKE_CL_64)
+ set(TARGET "Miranda64")
+else()
+ set(TARGET "Miranda32")
+endif()
+add_executable(${TARGET} ${SOURCES})
include_directories(.)
-set_target_properties(miranda32 PROPERTIES
+set_target_properties(${TARGET} PROPERTIES
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/$<CONFIG>"
) \ No newline at end of file