Commit graph

8 commits

Author SHA1 Message Date
Joachim Schmitz
3b614def85 Disable MSVC warnings for thirdparty code
* C4267 for beatroot
* C4244 and C4267 for freetype
* C4267 and C4334 for poppler
* C4028, C4189, C4267, C4311 and C4312 for portmidi
* C4267 for rtf2html
2018-09-11 16:44:39 +02:00
Andres Fernandez de Prado
188386ba2e This commit contains all the changes to the CMake build system required to generate a valid Visual Studio 2017 solution and projects for MuseScore.
In detail, changes are as follows:
- Changed .gitignore to ignore VS-specific files and directories.
- VS uses a global settings file for the CMake build process: CMakeSettings.json. This is a text file, which is conceptually equivalent to the Makefile used to invoke CMake through Make. This file might need to be changed on an individual user basis, if dependencies are not installed in default paths.
- New cmake macros to copy files in build\CopyFilesMacros.cmake. The code is from https://cmake.org/pipermail/cmake/2009-March/027892.html
- Pre-compiled headers: Visual Studio requires to create pre-compiled headers per-project (a general per-solution PCH file, although possible, is extremely problematic and not recommended). Therefore, the  new macro vstudio_pch in CreatePrecompiledHeader.cmake was created to add the pre-compiled header creation step to an existing target (similar to what is done for XCode). The existing macro precompiled_header was modified to set the values for a group of variables. As part of this, the empty file all.cpp was added to the root of the source tree, as VS requires a source file to create pre-compiled headers (the header file alone can not be compiled).
- all.h is not copied to binary dir for MSVC, as I could determine no need to do this. Because of this, and the differences in PCH handling, the pseudo-targets mops1 and mops2 are not created for MSVC.
- Revised all steps conditional on toolchain, and added MSVC paths as needed. In many instances, the MSVC path is the same as the MINGW path, but not always.
- The manual (genManual) target used the getopt() functionality defined in POSIX libraries, which is not available on Windows. An LGPL'd port of getopt() for Windows was added in manual\getopt. The original source is in GitHub: nanoporetech/getopt-win32, based on a CodeProject article: https://www.codeproject.com/KB/cpp/getopt4win.aspx?msg=3987371. The corresponding CMakeLists.txt file was modified to include this files when compiling with MSVC.
- Changes in CMakeLists.txt files to create valid MSVC targets. The changes, always conditional on the MSVC toolchain, consist of:
     x Setting target properties for MSVC
     x Using all.h in source dir
     x Adding pre-compiled headers to target
     x Removing dependency from mops1 and mops2

Notes:
- The INSTALL target has NOT BEEN UPDATED for MSVC.
2018-08-03 09:15:42 +02:00
lasconic
61eed11401 fix all warnings on Mac OSX. Hopefully without side effects on other platforms. 2015-05-05 18:28:39 +02:00
Andrey M. Tokarev
092c811f22 Add BeatRoot COPYING and README files 2014-07-29 18:37:58 +04:00
Andrey M. Tokarev
7aaba337de Integrate Beatroot (beat detection) algorithm into MIDI import 2014-07-29 18:35:27 +04:00
Andrey M. Tokarev
e2c27b17e0 Make the scope of local variable more narrow (Beatroot) 2014-07-29 18:35:27 +04:00
Andrey M. Tokarev
f4bebde500 Fix fillBeats function (Beatroot): no interpolation between 1st and 2nd beats 2014-07-29 18:35:26 +04:00
Andrey M. Tokarev
68f8ab2910 Add Beatroot code by Simon Dixon for beat detection in MIDI files
1. Passing of objects by values into functions
   were replaced by passing them by reference, where it is worth it.
2. Code style was reformatted according to the MuseScore style

Reformat Beatroot code style

Conflicts:
	mscore/CMakeLists.txt
	mtest/CMakeLists.txt
2014-07-29 18:35:25 +04:00