1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-28 23:06:24 +02:00
Commit Graph

274 Commits

Author SHA1 Message Date
Arseniy Shestakov
8577bba417 CMake: add workaround for Visual Studio 2015 linking issue
I tried to workaround it in code, but completely failed that.
So for now we'll just tell linker to ignore multiple definitions.
2018-03-29 02:02:00 +07:00
Arseniy Shestakov
e48797f7e8 CMake: enable /MP flag by default for Visual Studio solution
Can be toggled with ENABLE_MULTI_PROCESS_BUILDS option to CMake
2018-02-28 22:30:31 +08:00
Arseniy Shestakov
734441eb3b CMake: use CMAKE_DL_LIBS on Linux for linking with GNU gold
Gold only link what explicitly specified and we use dlopen.
2018-02-18 15:15:19 +08:00
Ivan Romanov
3c1c72319b CMake: update version on each compiling 2018-02-11 13:52:29 +03:00
Arseniy Shestakov
940c8a0b82 CMake: add $ORIGIN into RPATH for single-directory installation
End up that single-directory installation is useful for Snap package.
2017-09-08 03:43:44 +03:00
Arseniy Shestakov
610740011c CMake: print useful debug information on every build
That way we don't need to ask more questions regarding system where build failed.
2017-09-06 13:15:49 +03:00
Arseniy Shestakov
8180e4d5c5 VCMIDirs: improvements for development on Mac and Linux
Also added /usr/share/games in VCMIDirsXDG::dataPaths for mantis#2189.
2017-08-25 08:43:27 +03:00
Arseniy Shestakov
dfe781945b CMake: try to enable automated DS_Store generation for Mac
We should see in AppleScript from CMake would work on Travis CI.
Also use VCMI as volume name of DMG for now and update pre-generated DS_Store for it.
2017-08-21 17:04:53 +03:00
Dydzio
906bd7fc71 Fix CMake MSVS build problem (#366)
* Fix CMake MSVS 2015 boost linking problem
Same errors as here when building vcmi client and server: https://stackoverflow.com/questions/27196312/boost-1-57-0-program-options-msvs-2013-linker-error
Fix based on: https://groups.google.com/forum/#!topic/boost-list/Lhqvoet8N18

* Compile fix for VS 2017.3 due to incompatibility with variadic templates in Boost

https://developercommunity.visualstudio.com/content/problem/69009/compilation-error-on-msvc2015-on-boostbase-from-me.html
2017-08-18 23:11:11 +03:00
Arseniy Shestakov
5fce56d23e CMake: add ENABLE_DEBUG_CONSOLE option for Windows enabled by default
For now we'll keep console, but in future we need a way to toggle it at runtime.
2017-08-16 23:45:38 +03:00
Arseniy Shestakov
03c7bf5ee6 CMake: installer building improvements for Windows
- Implement support for BundleUtilities when Vcpkg is used
- Add some hacky code to copy Qt plugins install directory
- Use same icon for launcher as used for VCMI, launcher one is ugly
2017-08-16 18:34:46 +03:00
Arseniy Shestakov
adbfa09e31 CMake: restore some of old MinGW code and improve ENABLE_PCH option
- MinGW: restore DLL deploy for MXE builds
- MinGW: restore linking options for: dbghelp, mswsock, iconv, etc
- MinGW: build with -Og when Debug is used to avoid crashes / freezes
- Cotire: when ENABLE_PCH is OFF we won't include Cotire at all
- FuzzyLite: enable FORCE_BUNDLED_FL by default for Linux to avoid FL5 usage
- Remove Version.cpp from lib source list so it's won't appear in projects
- Add option ENABLE_GITVERSION to disable Version.cpp usage
2017-08-16 16:12:36 +03:00
Arseniy Shestakov
2b3a467728 CMake: structure changes and other small improvements
- Now cmake_minimum_required used properly and set to 2.8.12
- cmake_modules/CMakeCPackOptions.cmake.in is removed
2017-08-16 16:10:08 +03:00
Arseniy Shestakov
40af43c46e CMake: massive rework for Mac build and other improvements
- macOS: RPATH-related code all removed or disabled
- macOS: new osx/CMakeLists.txt to run some install-code running after all subdirectories
- Assets copying into the runtime output directory implemented for Mac and Linux development
2017-08-16 16:10:07 +03:00
Arseniy Shestakov
7dca95c8cc CMake: multiple improvements for builds and project generation
- Change default build output directory name from "build" to "bin"
- Implement new function vcmi_get_cmake_debug_info
- Link client with SDL2main on Windows and disable debug console
- Remove all old MinGW-specific options since they outdated and MXE work fine
- Set AUTOGEN_TARGETS_FOLDER for better Xcode and Visual Studio projects
- Remove useless vcmitestFiles custom target for less garbage in project files
2017-08-16 16:10:07 +03:00
Arseniy Shestakov
56f89270db macOS: full rework of Mac packaging process
- Most of outdated CMakeLists code removed.
- All Mac-specific code is removed include Sparkle support and vcmibuilder app.
- DMG buidling reimplemented using macdeployqt command.
2017-08-16 16:10:07 +03:00
Arseniy Shestakov
193f492b99 CMake: cleanup, project generation and other improvements
- Use EXCLUDE_FROM_ALL for FuzzyLite and GoogleTest to avoid inclusion of unneded headers and libraries into installers.
- Set minimum CMake version only in main CMakeLists.txt
- Set project name only in main CMakeLists.txt
- Visual Studio: add assign_source_group function to generate proper filesystem tree
- Visual Studio: set PROJECT_LABEL so generated projects have same names binaries on Windows
- Visual Studio: enabled USE_FOLDERS for projects grouping. This also possibly affect other IDEs.
- Added add_subdirectory_with_folder function to make sure 3rd-party libraries are affected by USE_FOLDERS.
2017-08-16 16:10:07 +03:00
Arseniy Shestakov
440226f7af CMake: use dynamic linking for Boost 2017-08-16 16:10:07 +03:00
Arseniy Shestakov
1b9daecd27 CMake: remove Boost.Test requirement 2017-07-22 03:19:17 +03:00
Arseniy Shestakov
6abc88c2bf CMake: set _WIN32_WINNT to 0x0600 for FuzzyLite 6
Now CMake builds will require Windows Vista or newer
2017-07-14 21:35:49 +03:00
Victor Luchits
30cc2f6a01 Change the output path for cmake so all files go into the same root directory 2017-07-07 13:08:53 +03:00
Alex Dunn
34058f1396 macOS: turn Sparkle off by default (#327) 2017-07-06 09:09:30 +03:00
Arseniy Shestakov
01a1353fe1 Cleanup: remove old editor code and adjust related project files
It's useless and will fail build if accidentally enabled in CMake.
For anyone interested it's always available in git history.
2017-07-03 21:59:57 +03:00
Arseniy Shestakov
0c7eeeaa5c Travis CI: update config and upload artifacts after build 2017-06-13 20:32:43 +03:00
Arseniy Shestakov
6c8aa6e938 Linux version bump for 0.99 2016-11-01 20:45:50 +03:00
Vadim Markovtsev
da1c9cf249 Fix rebuilding everything on HEAD change 2016-10-23 16:56:53 +02:00
Vadim Markovtsev
d0beb27197 Add git commit hash into the version string 2016-10-23 15:45:47 +02:00
Vadim Markovtsev
0e9e93e14e [WIP] macOS Travis / #2553 2016-10-12 11:35:40 +02:00
Arseniy Shestakov
6e5ad22efc Revert "CMake: add usage of ccache if it's available"
This reverts commit 2576dd4692.

Unfortunately I didn't manage to fix older combination of CMake+Clang with ccache.
Newer version of Clang that I use can't compile older FuzzyLite from VCMI repository anyway.
2016-09-28 08:26:31 +03:00
Arseniy Shestakov
2576dd4692 CMake: add usage of ccache if it's available
ccache obviously don't give any real betefit with PCH, but still nice option to test.
2016-09-27 08:36:52 +03:00
AlexVinS
37d0dad70a Merge branch 'develop' into feature/VCMIMapFormat1
Conflicts:
	lib/CArtHandler.cpp
2016-01-01 20:28:52 +03:00
ArseniyShestakov
4124aacac8 CMake: add dbghelp to SYSTEM_LIBS for MiniDumpWriteDump. Fix issue 2312 2015-12-22 00:08:49 +03:00
AlexVinS
c53718a0d5 Enabled unit test by default 2015-12-05 12:06:37 +03:00
AlexVinS
108d4c39b5 Fix build 2015-09-24 11:55:23 +03:00
Sandy Carter
1b3c3ee9ca Add UseDoxygen to cmake
Allow use of cmake . && make doc
Requires UseDoxygen.cmake from http://tobias.rautenkranz.ch/cmake/doxygen/
2015-08-22 12:49:27 -04:00
AlexVinS
39db232f1b remove sdl1 from cmake files 2015-06-21 01:59:34 +03:00
Dmitry Marakasov
093ad29ae1 More portable libdl handling 2015-04-09 13:19:44 +03:00
Mikhail Paulyshka
9fd51e0219 version bump for Linux 2015-04-01 23:21:36 +03:00
Ivan Savenko
356b6ab34a A bit delayed, but still - Linux version bump 2014-11-11 22:59:26 +02:00
Mikhail Paulyshka
7887a750cf suppress some warnings 2014-11-02 23:43:40 +03:00
Mikhail Paulyshka
2047a66bd9 install MSVC runtime
copy libEGL and libGLESv2 only for MSVC
2014-10-12 18:03:47 +03:00
Mikhail Paulyshka
dcba7a6316 move minizip detection to module 2014-10-12 16:50:39 +03:00
Mikhail Paulyshka
fff8e10a63 copy libEGL and libGLESv2 for MSVC build
copy debug version of Qt libraries when build type is debug for MinGW
2014-10-12 16:40:24 +03:00
Mikhail Paulyshka
514045b259 add settings for MSVC
small reorganizing in /CMakeLists.txt
2014-10-12 16:38:53 +03:00
Mikhail Paulyshka
53e2719ca4 update cotire 2014-10-12 16:37:10 +03:00
josch
9bef590960 use system version of minizip 2014-09-02 17:00:20 +02:00
beegee1
12126754fb - added all SDL2 directories to CMake (in case if any SDL2 module is installed somewhere else) 2014-08-04 20:35:23 +02:00
Ivan Savenko
c23261ac0a Removed references to WoG files from CMake 2014-07-26 11:51:44 +03:00
Ivan Savenko
4fca583062 Merge pull request #29 from Mixaill/nsis
CMake: add NSIS generator settings
2014-07-18 00:56:46 +03:00
Michael Pavlyshko
a6e590f220 cpack/nsis: do not strip files 2014-07-17 23:11:09 +03:00
NikolayIT
3d3713ae7f Added optimization flag (-O1) for the GCC compiler on Windows platform to prevent "CGameState.cpp.obj: too many sections" compile error 2014-07-16 11:37:57 +03:00
Michael Pavlyshko
88316f93d1 add NSIS generator settings 2014-07-14 01:23:57 +03:00
Michael Pavlyshko
83aff2d68e * remove static linking for libgcc
* fix clang warnings
2014-07-12 14:10:44 +03:00
Michael Pavlyshko
3b461cfa02 disable one more warning (type-limits) 2014-07-11 22:54:50 +03:00
Michael Pavlyshko
2145eae128 disable one more warning (strict-aliasing) 2014-07-11 21:35:19 +03:00
Michael Pavlyshko
dbb8b6636f Add -Wno-unused-local-typedefs instead of suppress all warnings 2014-07-11 18:26:22 +03:00
Michael Pavlyshko
699919a251 * link VCMI with libgcc statically
* copy winpthread to install folder
* copy libgcc to install folder because Qt5 linked with libgcc dynamically
2014-07-11 17:29:46 +03:00
Michael Pavlyshko
a96cd51c5a suppress extra GCC warnings on Windows 2014-07-11 14:09:14 +03:00
Michael Pavlyshko
2a18a09d12 install dlls on Windows 2014-07-11 14:08:20 +03:00
Michael Pavlyshko
3c36bc9f51 Enable FFmpeg for all platforms 2014-07-11 12:43:24 +03:00
Michael Pavlyshko
457e922cca fix iconv check 2014-07-11 11:25:20 +03:00
Michael Pavlyshko
bad7050096 spaces -> tabulation 2014-07-11 11:01:03 +03:00
Michael Pavlyshko
3b80c52fc4 Oops, reverting CXX_FLAGS back 2014-07-11 01:27:05 +03:00
Michael Pavlyshko
8581cfd5d8 link with iconv only when iconv is found 2014-07-11 00:23:06 +03:00
Michael Pavlyshko
08ee65c3c8 fix .dll and .exe filenames 2014-07-10 01:06:37 +03:00
Michael Pavlyshko
ce5f59e8b6 Fix windows linkage, also, use SYSTEM_LIBS variable for OS-dependent libraries 2014-07-10 00:41:31 +03:00
Michael Pavlyshko
7405066cbd Link with wsock32 lib 2014-07-09 17:36:01 +03:00
Michael Pavlyshko
3443ba5bb3 fix libvcmi linking 2014-07-09 01:43:13 +03:00
Michael Pavlyshko
e0134aed0b Delete unused include 2014-07-08 02:00:11 +03:00
Michael Pavlyshko
2957377360 Fix *_DIR variables for windows 2014-07-07 23:21:59 +03:00
Michael Pavlyshko
476c7c32dc CMake/SDL2: add ability to find SDL2 without pkg-config 2014-07-05 21:47:03 +03:00
AlexVinS
195eae48ca Merge branch 'develop' into SDL2
Conflicts:
	client/CPlayerInterface.cpp
2014-07-02 17:15:12 +04:00
Ivan Savenko
4441bd12db (linux) version set to 0.96 2014-07-01 21:02:03 +03:00
AlexVinS
3b8d0e44d4 Merge branch 'develop' into SDL2 2014-06-24 14:09:44 +04:00
Ivan Savenko
13bc4cb24f Added -fvisibility=hidden parameter for gcc.
Should help a bit with endless missing DLL_LINKAGE attributes and
(according to gcc docs) help a bit with library loading times.
2014-06-24 00:05:53 +03:00
Ivan Savenko
8eb661461c - vcmi compiles with SDL2 on Linux, video player is disabled for now 2014-06-13 07:55:45 +04:00
stopiccot
7356145c3a updated LD_RUNPATH_SEARCH_PATHS 2014-03-04 03:51:17 +00:00
Ivan Savenko
5563db9145 - my part of chagelog + some formatting
- version bump on Linux side
- enabled PCH by default in cmake
2014-02-26 14:19:14 +00:00
beegee1
95034b9fa0 - Updated PCH to use our StdInc.h as the prefix header (not generated one from cotire) -> no exclude headers from ffmpeg/etc... statements required
- Fixed compilation error (VCAI ResourceSet logging)
2014-02-05 20:25:36 +00:00
beegee1
df0a28d9cb - added PCH compilation for CMake using cotire module (PCH is OFF per default, can be enabled with ENABLE_PCH=ON) 2014-02-01 13:37:26 +00:00
Ivan Savenko
f6c1dace6c Minors:
- By default, cmake will keep debug info
- removed warnings from adventure map infobox (part of #1636)
- adventure map infobox will refresh on artifact changes (part of #1636)
- moved terrain music files to terrains.json file
- player should act before AI in all games, not only campaigns
2013-12-28 18:57:08 +00:00
stopiccot
c5e0e48d98 Some OS X related fixes 2013-12-13 11:51:15 +00:00
Ivan Savenko
2b6cdd5f41 - (linux) launcher will be available in OS start menu/launchers as
"VCMI" and client will be present as "VCMI Client"
2013-11-16 18:13:30 +00:00
Ivan Savenko
2b3405fa50 - minor optimizations
- fixed incorrect error reporting in launcher
- set WoG version to "0.0.0" so full version will be installed from repo
in future
- updated debian required packages list
- launcher will be enabled by default
2013-11-14 13:21:09 +00:00
Ivan Savenko
55577d0ac4 - fixed missing DLL_LINKAGE
- use precalculated checksum for zip files
- UNUSED macro to silence some warnings
2013-11-09 13:49:36 +00:00
Ivan Savenko
ee6cdbeffe went through the rest of cppcheck warnings, mostly harmless 2013-11-07 12:48:41 +00:00
Ivan Savenko
c4716d0a9a - reordered files in cmake so files with long compile times will be
compiled first.
- changed format of modSettings.json, VCMI should properly update file
on the first run.
- implemented property "defaultTavern" that acts as default value for
"tavern" entry in hero class and town formats.
2013-11-03 12:07:23 +00:00
beegee1
9ebd4a5c00 Changes due to boost locale:
- Updated README.linux
- Fixed missing boost locale include when compiling with unit tests
- Updated RPM spec (increased minimum boost version, added boost locale requirement)
2013-11-02 17:16:07 +00:00
Ivan Savenko
e2c037402c Unicode support.
- boost-locale library is now required (boost 1.48 or higher)
- Unicode namespace that contains UTF-8 handling
- All non-ASCII strings from H3 data will be converted to UTF-8 during loading
- All JSON files MUST use UTF-8. 
- H3 data encoding can be selected via launcher or directly in config file
2013-10-25 21:45:14 +00:00
stopiccot
cbc8cde10a some OS X fixes 2013-10-07 01:19:02 +00:00
Ivan Savenko
c9e3192419 (linux) version set to 0.94 2013-10-01 19:03:09 +00:00
beegee1
a13d72b636 - Fixed GCC warning
- Small refactoring
- Added RPM spec to SVN again (it's better to keep it there :) )
2013-08-19 18:20:11 +00:00
Ivan Savenko
5654fef901 - ZipArchive namespace for operations with zip archives, located in CZipLoader.h/cpp.
- new fields in mod format, for use with mod manager (check config/shemas/mod.json for details)
- removed some 0.92 compatibility from mods loading
- several compile fixes
2013-08-19 11:50:53 +00:00
beegee1
1ac328635a - Added handler classes CRmgTemplateStorage and CTerrainViewPatternConfig to LibClasses
- Re-organized CMapGenerator
- Created CZone and CTemplate objects in the heap and used pointers
- Added stub classes CZoneGraphGenerator and CZonePlacer (include warnings of unused variables, please ignore them)
- Fixed CRandomGenerator bug that always the same number was produced
- Better structure of Visual Studio project files with using filters
- Updated project files (VS, CMake)
- Excluded compiler warning mismatched-tags (false positive)
- Fixed a bug when compiling with unit tests enabled
2013-08-17 12:46:48 +00:00
Ivan Savenko
1d9139303a introduced zip support into vcmi
- minizip library is now part of sources, located at lib/minizip
- cmakefiles will compile minizip as dynamic library (Note: only 2 files used by vcmi are included in minizip.so)
- zip files can be loaded similar to other archives via filesystem.json
- mods can use Content.zip instead of Content/ directory. Files in directory will replace files in archive.
2013-07-30 15:02:55 +00:00
Ivan Savenko
f82122d9be second part of c++11 update. gcc 4.5 and VS 2010 are no longer supported
- BOOST_FOREACH -> for
- replaced several boost classes with std (e.g. unordered)
- removed gcc-4.5 workarounds
- ran clang c++11 migration tool to detect some cases:
- - pointer initialized with "0" to nullptr
- - replace for with iterators with range-based for
- - use auto in some situations (type name specified twice, avoid long iterators type names)
2013-06-29 13:05:48 +00:00
Ivan Savenko
b3c5757f2e (linux) version set to 0.93 2013-05-31 23:11:50 +00:00
Ivan Savenko
8be801a6dc - CMappedFileLoader class to remap WoG files to h3 names
- WoG should be optional, all remapped files are listed in WoG/config/wogFileOverrides.json
- fixed several cases of incorrect positioning of creatures in battles
- some missing sounds for battle effects
- negative luck support, disabled by default
- a bit hackish detection of WoG presence, VCMI should work on SoD-only installs
2013-05-04 13:14:23 +00:00
beegee1
dd78205ce8 -Added test subfolder and updated CMakeLists for unit testing - Added a test case for the DrawTerrainOperation class(does not pass all tests successfully, 6 failures left to fix) - Fixed a few bugs 2013-04-22 14:49:28 +00:00
beegee1
b1428bcd24 - Compile fix for editor - Renamed /Editor to /editor and Scripting/ERM to scripting/erm - Removed unused ipch folder and format file - Removed ancient lua folder 2013-04-13 11:07:32 +00:00
Ivan Savenko
0cf969d508 - console logger by default uses same format as previously (no extra data)
- a lot of changes in configs;
- - update to creature format - abilities are now json structure
- - multiple bugfixes revealed by validation
- made schemas a bit more strict
- creatures data can be replaced via mods
- it is possible to validate vcmi configs using schemas (disabled)
2013-04-11 19:24:14 +00:00
Ivan Savenko
63cfb5de7e (linux) version set to 0.92 2013-03-01 21:51:38 +00:00
Michał W. Urbańczyk
8c7c4789ca Attempt to apply patch from stopiccot. 2013-03-01 21:32:26 +00:00
Ivan Savenko
57d23c74ee patches from qdii 2013-02-25 19:17:36 +00:00
Ivan Savenko
9fa59276c9 - OSX patch from stoppicot 2013-02-21 17:32:50 +00:00
Ivan Savenko
b169326940 disable by default cmake file for editor, seems to be working
- requires Qt 5
- requires cmake 2.8.7
2013-02-16 21:14:36 +00:00
Ivan Savenko
6a5af58aed (linux) version bump to 0.91 2013-02-01 08:58:14 +00:00
Ivan Savenko
9caa21a51c - fix for #1189 (h3 text parsing fix)
- fix for #1188 (replaced ffmpeg detection with module from KDE)
2013-01-26 19:39:54 +00:00
Ivan Savenko
e023b7d6bc another OS X patch from stopiccot 2012-12-27 09:21:30 +00:00
Ivan Savenko
8824f5e2d5 - H3 creatures use subset of mod creature format (todo - unify code)
- creatures configs moved into confg/creatures files, similar to factions.
 - creatures ID's use same camelCase format as the rest of the game
2012-12-22 16:47:12 +00:00
Ivan Savenko
a1c7beeb83 cmake fix 2012-12-12 15:13:26 +00:00
Ivan Savenko
16b72ee89b minor:
- siege tower shooters use string ID's
- cmake will install vcmibuilder with correct permissions
- vcmibuilder will not extract outdated config files from core.zip
2012-12-10 20:08:00 +00:00
Ivan Savenko
85a23e298c - generic string ID -> numeric ID resolution system
- - hero army and creature upgrade names are resolved using new system
- - faction names and creatures in towns are resolved using new system
- (linux) replaced build_data.sh with hopefully better vcmibuilder script
- minor fixes
2012-12-03 16:00:17 +00:00
Ivan Savenko
2643762f08 Mac OS patch from stopiccot 2012-12-01 06:30:52 +00:00
Ivan Savenko
fc85e08a64 - clang and gcc 4.5 compatibility
- autotools update
- debian build system fixes
2012-11-03 19:31:16 +00:00
Ivan Savenko
fcc66b7bb9 - fixed RPATH in cmake
- minor fixes
2012-10-08 15:21:59 +00:00
beegee1
3f0c225880 * Fixed building, installing on Fedora * Updated RPM spec 2012-10-06 16:09:20 +00:00
Ivan Savenko
c071a03a8a - fix for #1135
- merged wall_pos.json into town config
- removed tower_shooter field from creatures.json
2012-10-05 18:03:49 +00:00
Ivan Savenko
f113f9573d - CPack support. Works on my side, needs tweaks for Win 2012-10-05 12:38:17 +00:00
Ivan Savenko
061ed69c63 - fixed seer hut issue (#1073)
- separate archive types in filesystem for lod\vid\snd
2012-09-17 17:25:54 +00:00
Ivan Savenko
d72c44e4c3 - fixed modifiers keys behaviour in TextInput
- erm compilation is optional in cmake (too memory-consuming for old systems)
-  minor fixes
2012-08-10 08:49:18 +00:00
Ivan Savenko
e4c88d5088 - moved ParseBonus to JsonNode.cpp (linkage errors)
- fixes to CMakeLists - vcmi can be compiled and started with cmake
- gcc\clang warnings fixes
2012-07-19 18:52:44 +00:00
ddaroo
69de38bf1d Tweaks for cmake build system: data dir definitions, flags for clang (not tested), missing CQuestLog.cpp file for the client, naming convention of few binaries same for autotools and cmake 2012-07-15 16:05:41 +00:00
ddaroo
758fb0679e Stub for a CMake build system. 2012-07-01 14:27:41 +00:00