Skip to content

Commit 50bbae7

Browse files
committed
Changed the FL parser mechanism from download-binary to download-source
1 parent e72352c commit 50bbae7

File tree

5 files changed

+57
-12
lines changed

5 files changed

+57
-12
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ Vst3.x/*
3535
!Vst3.x/README
3636
Data/data.aps
3737
Vsts/*/*.def
38-
WaveSabreConvert/FLParser/Monad.FLParser.dll
3938

4039
# Ignore VS 2017 IDE fluff
4140
.vs/

CMakeLists.txt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ cmake_policy(SET CMP0057 NEW)
55
include(CSharpUtilities)
66
set(CMAKE_CSharp_FLAGS ${CMAKE_CSharp_FLAGS} "/langversion:6")
77

8+
find_package(Git REQUIRED)
9+
include(ExternalProject)
10+
811
cmake_minimum_required(VERSION 3.11)
912
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
1013

@@ -19,7 +22,7 @@ set(BUILD_WAVESABRE_CONVERT_TESTS ON CACHE BOOL "Do not build the WaveSabreConve
1922
set(BUILD_CONVERT_THE_FUCK ON CACHE BOOL "Do not build ConvertTheFuck.")
2023
set(BUILD_PROJECT_MANAGER ON CACHE BOOL "Do not build the project manager.")
2124
set(VSTSDK3_DIR "${PROJECT_SOURCE_DIR}/Vst3.x/" CACHE PATH "VSTSDK location.")
22-
set(MONAD_FL_PARSER_DIR "${PROJECT_SOURCE_DIR}/WaveSabreConvert/FLParser/" CACHE PATH "Monad FL parser location.")
25+
set(MONAD_FL_PARSER_DIR "${CMAKE_CURRENT_BINARY_DIR}/Monad.FLParser.Source" CACHE PATH "Monad FL parser location.")
2326

2427
# Download and unpack VST3 SDK
2528
set(DOWNLOAD_VST3SDK OFF CACHE BOOL "Download and unpack VST3 SDK automatically.")
@@ -36,14 +39,22 @@ endif()
3639

3740
# Download and unpack the Monad FL Parser
3841
set(DOWNLOAD_MONAD_FL_PARSER OFF CACHE BOOL "Download the Monad FL parser binary automatically.")
42+
set(MONAD_FL_PARSER_BINARY ${CMAKE_CURRENT_BINARY_DIR}/Monad.FLParser/Release/Monad.FLParser.dll)
3943
if(${BUILD_WAVESABRE_CONVERT} AND ${DOWNLOAD_MONAD_FL_PARSER})
40-
find_file(MONAD_FL_PARSER_TEST name Monad.FLParser.dll HINTS ${MONAD_FL_PARSER_DIR})
44+
find_file(MONAD_FL_PARSER_TEST NAME Project.cs HINTS ${MONAD_FL_PARSER_DIR})
4145
if(${MONAD_FL_PARSER_TEST} MATCHES MONAD_FL_PARSER_TEST-NOTFOUND)
4246
message(STATUS "Monad FL parser not found. Will download.")
43-
file(DOWNLOAD https://github.com/LeStahL/FLParser/releases/download/compatibility-20.9/Monad.FLParser.dll Monad.FLParser.dll SHOW_PROGRESS)
44-
file(COPY "${CMAKE_CURRENT_BINARY_DIR}/Monad.FLParser.dll" DESTINATION "${MONAD_FL_PARSER_DIR}")
47+
ExternalProject_Add(FLParser
48+
SOURCE_DIR ${MONAD_FL_PARSER_DIR}
49+
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Monad.FLParser
50+
GIT_REPOSITORY https://github.com/Kwarf/FLParser.git
51+
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/WaveSabreConvert/FLParser/CMakeLists.txt ${MONAD_FL_PARSER_DIR}/CMakeLists.txt && ${CMAKE_COMMAND} ${MONAD_FL_PARSER_DIR} -DMONAD_FL_PARSER_DIR=${MONAD_FL_PARSER_DIR}
52+
BUILD_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/Monad.FLParser --config Release -- -m
53+
INSTALL_COMMAND ""
54+
)
4555
endif()
4656
endif()
57+
# add_subdirectory(${MONAD_FL_PARSER_DIR})
4758

4859
# shared code
4960
add_subdirectory(MSVCRT)

WaveSabreConvert/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,11 @@ set(WAVESABRE_CONVERT_SOURCES
3131
)
3232

3333
add_library(WaveSabreConvert SHARED ${WAVESABRE_CONVERT_SOURCES})
34-
34+
# target_link_libraries(WaveSabreConvert Monad.FLParser)
35+
message(STATUS "${MONAD_FL_PARSER_BINARY}")
3536
csharp_set_designer_cs_properties(${WAVESABRE_CONVERT_SOURCES})
3637
csharp_set_windows_forms_properties(${WAVESABRE_CONVERT_SOURCES})
37-
set_property(TARGET WaveSabreConvert PROPERTY VS_DOTNET_REFERENCE_Monad.FLParser "${MONAD_FL_PARSER_DIR}/Monad.FLParser.dll")
38+
set_property(TARGET WaveSabreConvert PROPERTY VS_DOTNET_REFERENCE_Monad.FLParser "${MONAD_FL_PARSER_BINARY}")
3839
set_property(TARGET WaveSabreConvert PROPERTY VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.6.1")
3940
set_property(TARGET WaveSabreConvert PROPERTY VS_DOTNET_REFERENCES
4041
"System"
@@ -49,3 +50,5 @@ set_property(TARGET WaveSabreConvert PROPERTY VS_DOTNET_REFERENCES
4950
"System.ComponentModel"
5051
)
5152
set_target_properties(WaveSabreConvert PROPERTIES VS_GLOBAL_ROOTNAMESPACE WaveSabreConvert)
53+
54+
# add_dependencies(WaveSabreConvert Monad.FLParser)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
cmake_minimum_required(VERSION 3.11)
2+
3+
project(Monad.FLParser LANGUAGES CSharp)
4+
5+
include(CSharpUtilities)
6+
set(CMAKE_CSharp_FLAGS ${CMAKE_CSharp_FLAGS} "/langversion:6")
7+
8+
set(MONAD_FL_PARSER_SOURCES
9+
${MONAD_FL_PARSER_DIR}/Properties/AssemblyInfo.cs
10+
11+
${MONAD_FL_PARSER_DIR}/AutomationData.cs
12+
${MONAD_FL_PARSER_DIR}/AutomationKeyframe.cs
13+
${MONAD_FL_PARSER_DIR}/Channel.cs
14+
${MONAD_FL_PARSER_DIR}/ChannelPlaylistItem.cs
15+
${MONAD_FL_PARSER_DIR}/Enums.cs
16+
${MONAD_FL_PARSER_DIR}/FlParseException.cs
17+
${MONAD_FL_PARSER_DIR}/GeneratorData.cs
18+
${MONAD_FL_PARSER_DIR}/IChannelData.cs
19+
${MONAD_FL_PARSER_DIR}/Insert.cs
20+
${MONAD_FL_PARSER_DIR}/InsertSlot.cs
21+
${MONAD_FL_PARSER_DIR}/IPlaylistItem.cs
22+
${MONAD_FL_PARSER_DIR}/Note.cs
23+
${MONAD_FL_PARSER_DIR}/Pattern.cs
24+
${MONAD_FL_PARSER_DIR}/PatternPlaylistItem.cs
25+
${MONAD_FL_PARSER_DIR}/Plugin.cs
26+
${MONAD_FL_PARSER_DIR}/PluginIoInfo.cs
27+
${MONAD_FL_PARSER_DIR}/Project.cs
28+
${MONAD_FL_PARSER_DIR}/ProjectParser.cs
29+
${MONAD_FL_PARSER_DIR}/Track.cs
30+
)
31+
32+
add_library(Monad.FLParser SHARED ${MONAD_FL_PARSER_SOURCES})
33+
set_property(TARGET Monad.FLParser PROPERTY VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.6.1")
34+
set_property(TARGET Monad.FLParser PROPERTY VS_DOTNET_REFERENCES
35+
"System"
36+
"System.Core"
37+
)

WaveSabreConvert/FLParser/README

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)