Removed old projects and build settings
Updated readme with new win32 build output Fixed a couple of glitches in cmake config filesmaster
parent
9ab7926269
commit
b0c2c4fa26
|
@ -301,10 +301,6 @@ if(NOT BUILD_ONLY_CEF)
|
||||||
add_subdirectory(third_party/npwrapper)
|
add_subdirectory(third_party/npwrapper)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
add_subdirectory(third_party/desura_extra)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# build desura
|
# build desura
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
10
README.md
10
README.md
|
@ -83,11 +83,11 @@ Build Desura on Windows
|
||||||
Download and install:
|
Download and install:
|
||||||
|
|
||||||
* Svn http://www.sliksvn.com/en/download or http://tortoisesvn.net/downloads.html
|
* Svn http://www.sliksvn.com/en/download or http://tortoisesvn.net/downloads.html
|
||||||
* Msvc 2012 or higher
|
* Msvc 2013 or higher (as C++11 features are in use)
|
||||||
* Python 2.7 http://www.python.org/getit/
|
* Python 2.7 http://www.python.org/getit/
|
||||||
* CMake 2.8 http://www.cmake.org/
|
* CMake 2.8 http://www.cmake.org/
|
||||||
* Patch either from msysGit or git bash
|
* Patch either from msysGit or git bash
|
||||||
* Windows DirectX 9 SDK for the CEF build https://www.microsoft.com/en-us/download/details.aspx?id=6812
|
* (Optional) Windows DirectX 9 SDK for the CEF build https://www.microsoft.com/en-us/download/details.aspx?id=6812
|
||||||
|
|
||||||
Note: Make sure you add svn and python to your environment PATH
|
Note: Make sure you add svn and python to your environment PATH
|
||||||
|
|
||||||
|
@ -108,9 +108,9 @@ Open a 32bit cmd.exe with env vars set up by vc or other scripts (so we have a f
|
||||||
|
|
||||||
* Set BUILD_ALL as startup project
|
* Set BUILD_ALL as startup project
|
||||||
* In properties for BUILD_ALL set debugging options:
|
* In properties for BUILD_ALL set debugging options:
|
||||||
* Command to source code dir + "\build_out\desura.exe"
|
* Command to source code dir + "\build_vis\Debug_Out\desura.exe"
|
||||||
* Working Directory to source code dir + "\build_out"
|
* Working Directory to source code dir + "\build_vis\Debug_Out"
|
||||||
* Build ThirdParty folder first (race condition some times if you dont
|
* Build ThirdParty folder first (race condition some times if you dont)
|
||||||
* Build BUILD_ALL
|
* Build BUILD_ALL
|
||||||
|
|
||||||
Should be able to run and debug Desura now.
|
Should be able to run and debug Desura now.
|
||||||
|
|
|
@ -3,6 +3,6 @@ IF NOT EXIST build_vis (
|
||||||
)
|
)
|
||||||
|
|
||||||
cd build_vis
|
cd build_vis
|
||||||
cmake .. -DCMAKE_INSTALL_PREFIX=../install_vis -G "Visual Studio 10" -DBUILD_CEF=OFF -DDEBUG=ON -DBUILD_TESTS=OFF -DBUILD_TESTING=OFF -DDEBUG_V8=ON
|
cmake .. -DCMAKE_INSTALL_PREFIX=../install_vis -G "Visual Studio 12" -DBUILD_CEF=OFF -DDEBUG=ON -DBUILD_TESTS=OFF -DBUILD_TESTING=OFF -DDEBUG_V8=ON
|
||||||
start Desura.sln
|
start Desura.sln
|
||||||
cd ..
|
cd ..
|
|
@ -70,6 +70,8 @@ if(WIN32 AND NOT MINGW)
|
||||||
source_dir
|
source_dir
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set_property(TARGET curl_s PROPERTY FOLDER "ThirdParty")
|
||||||
|
|
||||||
if(DEBUG)
|
if(DEBUG)
|
||||||
set(CURL_INSTALL_DIR_S ${source_dir}/builds/libcurl-vc-x86-debug-static-sspi-winssl)
|
set(CURL_INSTALL_DIR_S ${source_dir}/builds/libcurl-vc-x86-debug-static-sspi-winssl)
|
||||||
else()
|
else()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
ExternalProject_Add(
|
ExternalProject_Add(
|
||||||
desura_extra_bin
|
desura_extra_bin
|
||||||
URL "${DESURA_EXTRA_BIN}"
|
URL "${DESURA_EXTRA_BIN_URL}"
|
||||||
URL_MD5 ${DESURA_EXTRA_BIN}
|
URL_MD5 ${DESURA_EXTRA_BIN_MD5}
|
||||||
CONFIGURE_COMMAND ""
|
CONFIGURE_COMMAND ""
|
||||||
BUILD_COMMAND ""
|
BUILD_COMMAND ""
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
|
|
|
@ -14,9 +14,9 @@ set(CMAKE_INSTALL_PREFIX ${DEFAULT_INSTALL_DIR}
|
||||||
CACHE STRING "Desura Install Prefix")
|
CACHE STRING "Desura Install Prefix")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(BINDIR "")
|
set(BINDIR "${CMAKE_BUILD_TYPE}_Out")
|
||||||
set(RUNTIME_LIBDIR "bin")
|
set(RUNTIME_LIBDIR "${BINDIR}\\bin")
|
||||||
set(DATADIR "data")
|
set(DATADIR "${BINDIR}\\data")
|
||||||
else()
|
else()
|
||||||
set(BINDIR ""
|
set(BINDIR ""
|
||||||
CACHE STRING "Desura Bin Install Dir")
|
CACHE STRING "Desura Bin Install Dir")
|
||||||
|
|
|
@ -122,8 +122,6 @@ endif()
|
||||||
option(BUILD_TOOLS "Build various Desura tools." ON)
|
option(BUILD_TOOLS "Build various Desura tools." ON)
|
||||||
|
|
||||||
if(BUILD_TOOLS)
|
if(BUILD_TOOLS)
|
||||||
add_subdirectory(tools/mcf_upload_cli)
|
|
||||||
add_subdirectory(tools/mcf_extract)
|
|
||||||
add_subdirectory(tools/mcf_util)
|
add_subdirectory(tools/mcf_util)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -21,4 +21,4 @@ target_link_libraries(dumpgen
|
||||||
)
|
)
|
||||||
SetStaticRuntime(dumpgen)
|
SetStaticRuntime(dumpgen)
|
||||||
|
|
||||||
install_tool(dumpgen)
|
install_executable(dumpgen)
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
include_directories(
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/code
|
|
||||||
)
|
|
||||||
|
|
||||||
file(GLOB Sources code/*.cpp )
|
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
set(LINUX_LIBRARIES dl)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_executable(mcf_extract ${Sources})
|
|
||||||
target_link_libraries(mcf_extract
|
|
||||||
mcfcore
|
|
||||||
${LINUX_LIBRARIES}
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
SetSharedRuntime(mcf_extract)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install_tool(mcf_extract)
|
|
|
@ -1,56 +0,0 @@
|
||||||
/*
|
|
||||||
Desura is the leading indie game distribution platform
|
|
||||||
Copyright (C) 2012 Jookia
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <Common.h>
|
|
||||||
#include <mcfcore/MCFMain.h>
|
|
||||||
#include <cstdio>
|
|
||||||
|
|
||||||
void PrintfMsg(const char* format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start(args, format);
|
|
||||||
vprintf(format, args);
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
char out[1024]={0};
|
|
||||||
vsnprintf(out, 1024, format, args);
|
|
||||||
OutputDebugString(out);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
va_end(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argCount, const char* args[])
|
|
||||||
{
|
|
||||||
if(argCount != 3)
|
|
||||||
{
|
|
||||||
printf("Usage: mcf_extract FILE DIR\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* filename = args[1];
|
|
||||||
const char* dirname = args[2];
|
|
||||||
|
|
||||||
McfHandle mcf((MCFCore::MCFI*)MCFCore::FactoryBuilder(MCF_FACTORY));
|
|
||||||
|
|
||||||
mcf->setFile(filename);
|
|
||||||
mcf->parseMCF();
|
|
||||||
mcf->saveFiles(dirname);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
include_directories(
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/code
|
|
||||||
)
|
|
||||||
|
|
||||||
file(GLOB Sources code/*.cpp )
|
|
||||||
|
|
||||||
add_executable(mcf_upload_cli ${Sources})
|
|
||||||
target_link_libraries(mcf_upload_cli
|
|
||||||
managers
|
|
||||||
managers_window
|
|
||||||
threads
|
|
||||||
usercore
|
|
||||||
util
|
|
||||||
util_fs
|
|
||||||
${CURL_LIBRARIES}
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
SetSharedRuntime(mcf_upload_cli)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install_tool(mcf_upload_cli)
|
|
|
@ -1,342 +0,0 @@
|
||||||
/*
|
|
||||||
Desura is the leading indie game distribution platform
|
|
||||||
Copyright (C) 2011 Mark Chandler (Desura Net Pty Ltd)
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "Common.h"
|
|
||||||
|
|
||||||
#include "usercore/UserCoreI.h"
|
|
||||||
#include "usercore/UserThreadManagerI.h"
|
|
||||||
#include "usercore/MCFThreadI.h"
|
|
||||||
|
|
||||||
#include "util_thread/BaseThread.h"
|
|
||||||
|
|
||||||
UserCore::UserI* g_pUserHandle;
|
|
||||||
|
|
||||||
Thread::WaitCondition g_WaitCon;
|
|
||||||
gcString g_strMcfOutPath;
|
|
||||||
gcString g_strUploadHash;
|
|
||||||
bool g_bUploadDone;
|
|
||||||
|
|
||||||
bool Login(std::string &strUsername, std::string &strPassword);
|
|
||||||
bool CreateMcf(DesuraId id, std::string &strFolderPath);
|
|
||||||
bool StartUpload(DesuraId id);
|
|
||||||
bool UploadMcf();
|
|
||||||
|
|
||||||
void PrintfMsg(const char* format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start(args, format);
|
|
||||||
vprintf(format, args);
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
char out[1024]={0};
|
|
||||||
vsnprintf(out, 1024, format, args);
|
|
||||||
OutputDebugString(out);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
va_end(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Color;
|
|
||||||
|
|
||||||
void LogMsg(int type, std::string msg, Color *col)
|
|
||||||
{
|
|
||||||
printf("%s", msg.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void LogMsg(int type, std::wstring msg, Color *col)
|
|
||||||
{
|
|
||||||
wprintf(L"%s", msg.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void ShowHelp()
|
|
||||||
{
|
|
||||||
printf("----------------------------------------------------------------------------\n");
|
|
||||||
printf(" MCF Upload Utility By Lodle\n");
|
|
||||||
printf("----------------------------------------------------------------------------\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("Usage:\n");
|
|
||||||
printf("\t--username (-u): Desura Username\n");
|
|
||||||
printf("\t--password (-p): Desura Password\n");
|
|
||||||
printf("\t--folder (-f): Folder of game files\n");
|
|
||||||
printf("\t--item (-i): Item site area id\n");
|
|
||||||
printf("\t--type (-t): Item site area (mods | games)\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
std::map<std::string, std::string> ProcessArgs(int argc, char** argv)
|
|
||||||
{
|
|
||||||
std::map<std::string, std::string> args;
|
|
||||||
|
|
||||||
for (int x=1; x<argc; x++)
|
|
||||||
{
|
|
||||||
if (!argv[x] || argv[x][0] != '-')
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if ((x+1) < argc && argv[x][0] == '-')
|
|
||||||
{
|
|
||||||
args[argv[x]] = argv[x+1];
|
|
||||||
x++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
args[argv[x]] = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::for_each(args.begin(), args.end(), [&args](std::pair<std::string, std::string> p)
|
|
||||||
{
|
|
||||||
std::string strKey = p.first;
|
|
||||||
|
|
||||||
if (strKey.size() >= 3 && strKey[0] == '-' && strKey[1] == '-')
|
|
||||||
{
|
|
||||||
std::string strSort("-");
|
|
||||||
strSort += strKey[2];
|
|
||||||
args[strSort] = p.second;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return args;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ValidateArgs(std::map<std::string, std::string> &args)
|
|
||||||
{
|
|
||||||
if (args["-u"].size() == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (args["-p"].size() == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (args["-f"].size() == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (args["-i"].size() == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (args["-t"].size() == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
std::map<std::string, std::string> args = ProcessArgs(argc, argv);
|
|
||||||
|
|
||||||
if (args.size() != 5 || !ValidateArgs(args))
|
|
||||||
{
|
|
||||||
ShowHelp();
|
|
||||||
return -5;
|
|
||||||
}
|
|
||||||
|
|
||||||
DesuraId id(args["-i"].c_str(), args["-t"].c_str());
|
|
||||||
|
|
||||||
if (!Login(args["-u"], args["-p"]))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (!CreateMcf(id, args["-f"]))
|
|
||||||
return -2;
|
|
||||||
|
|
||||||
if (!StartUpload(id))
|
|
||||||
return -3;
|
|
||||||
|
|
||||||
if (!UploadMcf())
|
|
||||||
return -4;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void OnNeedCvar(UserCore::Misc::CVar_s &cvar)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Login(std::string &strUsername, std::string &strPassword)
|
|
||||||
{
|
|
||||||
gcString path = UTIL::OS::getAppDataPath();
|
|
||||||
|
|
||||||
g_pUserHandle = (UserCore::UserI*)UserCore::FactoryBuilderUC(USERCORE);
|
|
||||||
g_pUserHandle->init(path.c_str());
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
//need to do this here as news items will be passed onlogin
|
|
||||||
*g_pUserHandle->getNeedCvarEvent() += delegate(&OnNeedCvar);
|
|
||||||
|
|
||||||
g_pUserHandle->lockDelete();
|
|
||||||
g_pUserHandle->logIn(strUsername.c_str(), strPassword.c_str());
|
|
||||||
g_pUserHandle->unlockDelete();
|
|
||||||
}
|
|
||||||
catch (gcException e)
|
|
||||||
{
|
|
||||||
g_pUserHandle->logOut();
|
|
||||||
g_pUserHandle->unlockDelete();
|
|
||||||
safe_delete(g_pUserHandle);
|
|
||||||
|
|
||||||
Warning(gcString("Failed to login: {0}", e));
|
|
||||||
}
|
|
||||||
|
|
||||||
return !g_pUserHandle;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void OnMCFCreateProgress(MCFCore::Misc::ProgressInfo &prog)
|
|
||||||
{
|
|
||||||
static uint32 s_uiLastProg = -1;
|
|
||||||
if (s_uiLastProg == prog.percent)
|
|
||||||
return;
|
|
||||||
|
|
||||||
s_uiLastProg = prog.percent;
|
|
||||||
|
|
||||||
printf("\r[");
|
|
||||||
|
|
||||||
size_t tot = (prog.percent/2);
|
|
||||||
|
|
||||||
for (size_t x=0; x<50; x++)
|
|
||||||
{
|
|
||||||
if (x<tot)
|
|
||||||
printf("=");
|
|
||||||
else
|
|
||||||
printf(" ");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("] %u%%", prog.percent);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnMCFCreateError(gcException &e)
|
|
||||||
{
|
|
||||||
Warning(gcString("Failed to create mcf: {0}", e));
|
|
||||||
g_WaitCon.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnMCFCreateComplete(gcString &strPath)
|
|
||||||
{
|
|
||||||
Msg("Completed creating Mcf.\n");
|
|
||||||
g_strMcfOutPath = strPath;
|
|
||||||
g_WaitCon.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CreateMcf(DesuraId id, std::string &strFolderPath)
|
|
||||||
{
|
|
||||||
Msg("Creating Mcf....\n");
|
|
||||||
|
|
||||||
UserCore::Thread::MCFThreadI* pThread = g_pUserHandle->getThreadManager()->newCreateMCFThread(id, strFolderPath.c_str());
|
|
||||||
|
|
||||||
*pThread->getMcfProgressEvent() += delegate(&OnMCFCreateProgress);
|
|
||||||
*pThread->getErrorEvent() += delegate(&OnMCFCreateError);
|
|
||||||
*pThread->getCompleteStringEvent() += delegate(&OnMCFCreateComplete);
|
|
||||||
|
|
||||||
pThread->start();
|
|
||||||
safe_delete(pThread);
|
|
||||||
|
|
||||||
g_WaitCon.wait();
|
|
||||||
|
|
||||||
return g_strMcfOutPath.size() != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnStartUploadError(gcException &e)
|
|
||||||
{
|
|
||||||
Warning(gcString("Failed to init upload of mcf: {0}", e));
|
|
||||||
g_WaitCon.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnStartUploadComplete(gcString &strHash)
|
|
||||||
{
|
|
||||||
g_strUploadHash = strHash;
|
|
||||||
g_WaitCon.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool StartUpload(DesuraId id)
|
|
||||||
{
|
|
||||||
Msg("Starting Mcf Upload....\n");
|
|
||||||
|
|
||||||
//start upload
|
|
||||||
UserCore::Thread::MCFThreadI* pPrepThread = g_pUserHandle->getThreadManager()->newUploadPrepThread(id, g_strMcfOutPath.c_str());
|
|
||||||
|
|
||||||
*pPrepThread->getErrorEvent() += delegate(&OnStartUploadError);
|
|
||||||
*pPrepThread->getCompleteStringEvent() += delegate(&OnStartUploadComplete);
|
|
||||||
|
|
||||||
pPrepThread->start();
|
|
||||||
|
|
||||||
g_WaitCon.wait();
|
|
||||||
|
|
||||||
return g_strUploadHash.size() != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void OnUploadProgress(UserCore::Misc::UploadInfo &info)
|
|
||||||
{
|
|
||||||
static uint32 s_uiLastProg = -1;
|
|
||||||
if (s_uiLastProg == info.percent)
|
|
||||||
return;
|
|
||||||
|
|
||||||
s_uiLastProg = info.percent;
|
|
||||||
|
|
||||||
printf("\r[");
|
|
||||||
|
|
||||||
size_t tot = (info.percent/2);
|
|
||||||
|
|
||||||
for (size_t x=0; x<50; x++)
|
|
||||||
{
|
|
||||||
if (x<tot)
|
|
||||||
printf("=");
|
|
||||||
else
|
|
||||||
printf(" ");
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string done = UTIL::MISC::niceSizeStr(info.doneAmmount, true);
|
|
||||||
std::string total = UTIL::MISC::niceSizeStr(info.totalAmmount);
|
|
||||||
std::string lab = UTIL::MISC::genTimeString(info.hour, info.min, info.rate);
|
|
||||||
|
|
||||||
printf("] %u%% [done %s of %s] ETA: %s", info.percent, done.c_str(), total.c_str(), lab.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnUploadError(gcException &e)
|
|
||||||
{
|
|
||||||
Warning(gcString("Failed to upload of mcf: {0}", e));
|
|
||||||
g_WaitCon.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnUploadComplete(uint32& status)
|
|
||||||
{
|
|
||||||
Msg("Upload complete\n");
|
|
||||||
g_bUploadDone = true;
|
|
||||||
g_WaitCon.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool UploadMcf()
|
|
||||||
{
|
|
||||||
Msg("Uploading Mcf....\n");
|
|
||||||
|
|
||||||
//upload
|
|
||||||
UserCore::Misc::UploadInfoThreadI* info = g_pUserHandle->getUploadManager()->findItem(g_strUploadHash.c_str());
|
|
||||||
assert(info);
|
|
||||||
|
|
||||||
*info->getUploadProgressEvent() += delegate(&OnUploadProgress);
|
|
||||||
*info->getErrorEvent() += delegate(&OnUploadError);
|
|
||||||
*info->getCompleteEvent() += delegate(&OnUploadComplete);
|
|
||||||
|
|
||||||
if (info->isPaused())
|
|
||||||
info->unpause();
|
|
||||||
|
|
||||||
info->start();
|
|
||||||
g_WaitCon.wait();
|
|
||||||
|
|
||||||
return g_bUploadDone;
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
ExternalProject_Add(
|
|
||||||
fetch_desura_extra_bin
|
|
||||||
URL "${DESURA_EXTRA_BIN_URL}"
|
|
||||||
URL_MD5 ${DESURA_EXTRA_BIN_MD5}
|
|
||||||
UPDATE_COMMAND ""
|
|
||||||
BUILD_IN_SOURCE 1
|
|
||||||
CONFIGURE_COMMAND ""
|
|
||||||
BUILD_COMMAND ""
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Get_Property(
|
|
||||||
fetch_desura_extra_bin
|
|
||||||
source_dir
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_command(TARGET fetch_desura_extra_bin POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${source_dir}\\." "${CMAKE_OUTPUT}\\bin\\.")
|
|
||||||
SET_PROPERTY(TARGET fetch_desura_extra_bin PROPERTY FOLDER "ThirdParty")
|
|
Loading…
Reference in New Issue