A.- Preparación.
Bajar los siguientes archivos y seguir las instrucciones de instalación. (Se supone que se ha creado FluidSynth y se tienen instalados Visual C++ 2010 Express y CMake 3.5.2).
1.- El archivo con el código fuente de Qsynth (http://qsynth.sourceforge.net/qsynth-index.html)
qsynth-0.4.0.tar.gz (http://sourceforge.net/projects/qsynth/files/qsynth/0.4.0/qsynth-0.4.0.tar.gz/download)
Crear una carpeta nueva en “C:\”. Por ejemplo “C:\QS64”.
En esta carpeta descomprimir el archivo qsynth-0.4.0.tar.gz. (“C:\QS64\qsynth-0.4.0”)
En esta última carpeta crear la carpeta “build” (“C:\QS64\qsynth-0.4.0\build”)
Realizar los siguientes cambios:
a) Abrir el archivo “CMakeLists.txt” en la carpeta “C:\QS64\qsynth-0.4.0\src” con notepad++ e ir a la línea 130.
Ir a la línea 130 y sustituir
DESTINATION share/locale )
con
DESTINATION share/qsynth/translations )
Ir a la línea 141 y sustituir
DESTINATION share/locale )
con
DESTINATION share/qsynth/translations )
y guardar.
b) A los archivos “qsynthDialClassicStyle.h”, “qsynthDialSkulptureStyle.h”, “qsynthDialVokiStyle.h” y “qsynthKnob.h” que se localizan en la carpeta “C:\QS64\qsynth-0.4.0\src” abrirlos con notepad++ y anadir al final de cada archivo, la línea
#define M_PI 3.14159265358979323846
y guardar cada uno.
c) Abrir el archivo “CMakeLists.txt” en la carpeta “C:\QS64\qsynth-0.4.0” y hacer las siguientes modificaciones.
1) Ir a la línea 1 y sustituir
project(QSYNTH)
con
project(QSYNTHX64)
2) Ir a la línea 7 y sustituir
set (PACKAGE_NAME "Qsynth")
con
set (PACKAGE_NAME "Qsynth-x64 ")
3) Ir a la línea 11 y sustituir
set (PACKAGE_TARNAME "qsynth")
con
set (PACKAGE_TARNAME "qsynth-x64")
4) Ir a la línea 27 y sustituir
set (QT_MIN_VERSION "5.1.0")
con
set (QT_MIN_VERSION "4.8.6")
5) Ir a la línea 28 y sustituir
find_package (Qt5 REQUIRED)
con
# find_package (Qt5 REQUIRED)
6) Bajo esta línea crear una línea nueva y escribir
find_package(Qt4)
7) Ir a la línea 62 y sustituir
if (FLUIDSYNTH_LIBRARY AND HAVE_FLUIDSYNTH_H)
con
if (FLUIDSYNTH_LIBRARY)
Ir a la línea 74 y sustituir
else (FLUIDSYNTH_LIBRARY AND HAVE_FLUIDSYNTH_H)
con
else (FLUIDSYNTH_LIBRARY)
Ir a la línea 76 y sustituir
endif (FLUIDSYNTH_LIBRARY AND HAVE_FLUIDSYNTH_H)
con
endif (FLUIDSYNTH_LIBRARY)
y guardar.
d) Abrir el archivo qsynth.qrc en “C:\QS64\qsynth-0.4.0\src” con notepad++ e ir a la línea 25 y cambiar
<file>images/qtlogo.png</file>
por
<!--<file>images/qtlogo.png</file>-->
y guardar
2.- El programa Qt4 (http://qt-project.org/) para desarrollo de Interfaces de Usuario de plataforma cruzada.
qt-4.8.7-x64-msvc2010.exe (https://sourceforge.net/projects/qt64ng/files/qt/x86-64/4.8.7/msvc2010/qt-4.8.7-x64-msvc2010.exe/download) o (http://download2.polytechnic.edu.na/pub4/sourceforge/q/qt/qt64ng/qt/x86-64/4.8.7/msvc2010/qt-4.8.7-x64-msvc2010.exe) o (http://gigavoxels.imag.fr/download/Externals/Libraries/Qt/qt-4.8.7-x64-msvc2010.exe)
Instalar el programa qt-4.8.7-x64-msvc2010.exe en la carpeta “C:\Qt“ (por omisión se instalaría en “C:\Qt\qt-4.8.7-x64-msvc2010” pero así se doblan los nombres de las carpetas al final de la instalación: “C:\Qt\qt-4.8.7-x64-msvc2010\qt-4.8.7-x64-msvc2010” que es lo que queremos evitar). Se puede omitir la instalación de: Qt Sources, Qt Examples, Qt Demos y Qt Documentation.
Agregar a la variable de sistema PATH la ruta “C:\Qt\qt-4.8.6-x64-msvc2010\bin”
3.- Cuando se compila FluidSynth x86 en una máquina de 64 bits utilizando la opción INSTALL, la carpeta de instalación debe quedar en “C:\Archivos de programa\FluidSynth” (“C:\Program Files\FluidSynth”)
a) Copiar la biblioteca libfluidsynth.dll ubicada en la carpeta “C:\Archivos de programa\FluidSynth\bin” (“C:\Program Files\FluidSynth\bin”) en la carpeta “C:\libfs32\bin”.
b) Copiar la biblioteca fluidsynth.lib y la carpeta “pkgconfig” ubicadas en la carpeta “C:\Archivos de programa\FluidSynth\lib64” (“C:\Program Files\FluidSynth\lib64”) en la carpeta “C:\libfs32\lib”.
c) Copiar los archivos y la carpeta contenidos en el directorio “C:\Archivos de programa (x86)\FluidSynth\include” (“C:\Program Files (x86)\FluidSynth\include”) (archivos include) dentro de la carpeta “C:\libfs32\include”.
B.- Generar el archivo “.sln” con la interface gráfica de CMake
1.- Ejecutar CMake (cmake-gui)
2.- Introducir la ruta donde se encuentra el código fuente (C:\QS64\qsynth-0.4.0)
3.- Introducir la ruta donde se creará Qsynth (C:\QS64\qsynth-0.4.0\build)
4.- Hacer clic en el botón [Configure]. Se presentará la ventana de elección del generador.5.- Elegir “Visual Studio 10 2010 Win64” como generador, Elegir la opción “Use default native compilers” y hacer clic en el botón [Finish].
6.- El programa ejecuta la acción solicitada.
7.- Terminada la configuración se tiene el siguiente estado:
En la ventana central hacer clic en el signo [+]××× del lado izquierdo de la clave CMAKE. Buscar la entrada CMAKE_INSTALL_PREFIX y cambiarlo de “C:/Program Files/QSYNTH” a “./”. Esto garantiza que al distribuir Qsynth la búsqueda de los archivos de traducción sea relativa a la carpeta “\share\qsynth\translations”, la que se deberá ubicar en la misma carpeta que contiene el ejecutable “qsynth.exe”.
8.- Hacer clic en la tecla [Configure] una segunda vez y al finalizar esta operación se hace clic en el botón [Generate].
9.- Abrir el archivo cmake_install.cmake contenido en “C:\QS64\qsynth-0.4.0\build\src”.
Ir a la línea 32 sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE EXECUTABLE FILES "C:/QS64/qsynth-0.4.0/build/src/Debug/qsynth.exe")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE EXECUTABLE FILES "C:/QS64/qsynth-0.4.0/build/src/Debug/qsynth-x64.exe")
Ir a la línea 34 y sustitiuir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE EXECUTABLE FILES "C:/QS64/qsynth-0.4.0/build/src/Release/qsynth.exe")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE EXECUTABLE FILES "C:/QS64/qsynth-0.4.0/build/src/Release/qsynth-x64.exe")
Ir a la línea 36 y sustitiuir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE EXECUTABLE FILES "C:/QS64/qsynth-0.4.0/build/src/MinSizeRel/qsynth.exe")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE EXECUTABLE FILES "C:/QS64/qsynth-0.4.0/build/src/MinSizeRel/qsynth-x64.exe")
Ir a la línea 38 y sustitiuir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE EXECUTABLE FILES "C:/QS64/qsynth-0.4.0/build/src/RelWithDebInfo/qsynth.exe")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE EXECUTABLE FILES "C:/QS64/qsynth-0.4.0/build/src/RelWithDebInfo/qsynth-x64.exe")
y guardar.
C.- Crear Qsynth
1.- Ir a la carpeta “C:\QS64\qsynth-0.4.0\build” en el explorador de archivos y dar doble clic sobre el archivo QSYNTHX64.sln. Se abrirá la interface gráfica de VS 2010.
2.- Ir al menú Generar -> Administración de la configuración… y en la ventana que aparece en el combo “Configuración de soluciones activas:” seleccionar Release y marcar la casilla de “Generar”, en el rubro “INSTALL” en la ventana “Contextos del proyecto” y oprimir [Cerrar].
3.- En el “Explorador de soluciones” dar clic derecho en el rubro qsynth y elegir Propiedades en el menú desplegable.
En la ventana que aparece ir a Propiedades de configuración -> General y cambiar Nombre de destino (qsynth) con qsynth-x64.
Oprimir [Enter] y luego [Aplicar]
Ir a Vinculador -> Línea de comandos. En el cuadro de texto editable “Opciones adicionales” añadir el texto
/ENTRY:"mainCRTStartup"
Oprimir [Aplicar] y luego [Aceptar].
4.- Ir al menú Generar -> Generar solución. El programa debe compilarse sin advertencias y sin errores.
5.- La salida del nuevo ejecutable se ubicará en la carpeta “C:\QS64\qsynth-0.4.0\build” donde se encontrará el archivo: qsynth-x64.exe, y la carpeta share en el que se encuentran los archivos de traducción (share\qsynth\translations).
Las dependencias incluyen los siguientes archivos:
libfluidsynth.dll
libglib-2.0-0.dll
libgthread-2.0-0.dll
libintl-8.dll
libsndfile-1.dll
readline-x64.dll
portaudio_x64.dll
QtCore4.dll
QtGui4.dll
libjack64.dll
NOTA:
Para la distribución del programa se necesitan las siguientes DLLs dentro de la misma carpeta que contiene a qsynth.exe:
libfluidsynth.dll - La biblioteca compilada junto con FluidSynth
libglib-2.0-0.dll y libgthread-2.0-0.dll - Que se obtiene desde la carpeta “C:\libfs64\bin” que se creó previamente para compilar FluidSynth (ver el punto 4 de la sección A en “Construcción de FluidSynth para Windows®con VS 2010 (64 bit))”
libintl-8.dll - Que se obtiene desde la misma carpeta “C:\libfs64\bin”
libsndfile-1.dll - Que se obtiene desde la misma carpeta “C:\libfs64\bin”
readline-x64.dll y portaudio_x64.dll - Que se obtienen desde la misma carpeta “C:\libfs64\bin”
QtCore4.dll y QtGui4.dll – Las bibliotecas Qt4 que se obtienen desde la carpeta “C:\Qt\qt-4.8.6-x64-msvc2010\qt-4.8.6-x64-msvc2010\bin”
libjack64.dll – La biblioteca Jack que se obtiene de “C:\Windows” después de instalar Jack_v1.9.10_64.
fluidsynth.exe – El programa ejecutable FluidSynth compilado. (No es necesario para que Qsynth trabaje pero se acostumbra suministrarlo)