Skip to content

Instantly share code, notes, and snippets.

@hhrhhr
Created June 19, 2014 15:28
Show Gist options
  • Save hhrhhr/d61bff8d66279c660f49 to your computer and use it in GitHub Desktop.
Save hhrhhr/d61bff8d66279c660f49 to your computer and use it in GitHub Desktop.
qbs project for FMOD Studio C++ API examples (plus .def files for generate an import library for MinGW 4.9.0)
import qbs
import qbs.File
import qbs.Process
Project {
name: "FMOD Studio examples"
property bool isDebug : qbs.buildVariant == "debug" ? true : false
property string fmod : isDebug ? "fmodL4gcc" : "fmod4gcc"
property path sources : path
property path include : path + "/../../inc"
Project {
name: "1) pre-build"
StaticLibrary {
name: "fmod4gcc"
files: [ project.fmod + ".def" ]
Transformer {
inputs: product.files
Artifact { fileName: "lib" + project.fmod + ".a" }
prepare: {
var cmd = new Command()
cmd.description = "generate lib from '" + input.filePath + "'";
cmd.highlight = "filegen";
cmd.program = "dlltool";
cmd.arguments = [ "-d", input.filePath, "-l", output.filePath ]
return cmd;
}
}
}
StaticLibrary {
name : "common"
Depends { name: "cpp" }
cpp.systemIncludePaths : project.include
files: [ "../common.cpp", "../common_platform.cpp" ]
Export {
Depends { name: "fmod4gcc" }
Depends { name: "cpp" }
cpp.systemIncludePaths : project.include
cpp.libraryPaths : buildDirectory
cpp.dynamicLibraries : project.fmod
cpp.linkerFlags : [ "-Wl,--no-demangle" ]
.concat(project.isDebug ? [] : ["-Wl,-s"])
}
}
}
Project {
name: "2) build"
CppApplication {
name : "play_sound"
Depends { name : "common" }
consoleApplication : true
files: [ "../play_sound.cpp" ]
Group {
qbs.install : true
qbs.installDir : "bin"
fileTagsFilter : product.type
}
}
CppApplication {
name : "play_stream"
Depends { name : "common" }
consoleApplication : true
files: [ "../play_stream.cpp" ]
Group {
qbs.install : true
qbs.installDir : "bin"
fileTagsFilter : product.type
}
}
}
Project {
name: "3) install"
Product {
name: "share"
Group {
qbs.install : true
qbs.installDir : "media"
prefix : "../media/"
files : [ "*.*" ]
}
Group {
qbs.install : true
qbs.installDir : "media/granular"
prefix : "../media/granular/"
files : [ "*.wav" ]
}
Group {
qbs.install : true
qbs.installDir : project.sources + "/bin3"
prefix : "../../lib/"
files : [ "*.dll" ]
}
}
}
}
LIBRARY "fmod.dll"
EXPORTS
_ZN4FMOD6System5closeEv@4 @14 NONAME
_ZN4FMOD6System11createSoundEPKcjP22FMOD_CREATESOUNDEXINFOPPNS_5SoundE@20 @22 NONAME
_ZN4FMOD6System18getChannelsPlayingEPi@8 @58 NONAME
_ZN4FMOD7Channel15getCurrentSoundEPPNS_5SoundE@8 @59 NONAME
_ZN4FMOD5Sound9getLengthEPjj@12 @82 NONAME
_ZN4FMOD5Sound15getNumSubSoundsEPi@8 @123 NONAME
_ZN4FMOD14ChannelControl9getPausedEPb@8 @139 NONAME
_ZN4FMOD7Channel11getPositionEPjj@12 @146 NONAME
_ZN4FMOD6System18getSpeakerPositionE12FMOD_SPEAKERPfS2_Pb@20 @162 NONAME
_ZN4FMOD5Sound11getSubSoundEiPPS0_@12 @164 NONAME
_ZN4FMOD6System10getVersionEPj@8 @185 NONAME
_ZN4FMOD6System4initEijPv@16 @189 NONAME
_ZN4FMOD14ChannelControl9isPlayingEPb@8 @190 NONAME
_ZN4FMOD6System9playSoundEPNS_5SoundEPNS_12ChannelGroupEbPPNS_7ChannelE@20 @201 NONAME
_ZN4FMOD5Sound7releaseEv@4 @211 NONAME
_ZN4FMOD6System7releaseEv@4 @213 NONAME
_ZN4FMOD5Sound7setModeEj@8 @269 NONAME
_ZN4FMOD14ChannelControl9setPausedEb@8 @283 NONAME
_ZN4FMOD6System6updateEv@4 @321 NONAME
FMOD_System_Create@4 @989 NONAME
LIBRARY "fmodL.dll"
EXPORTS
_ZN4FMOD6System5closeEv@4 @15 NONAME
_ZN4FMOD6System11createSoundEPKcjP22FMOD_CREATESOUNDEXINFOPPNS_5SoundE@20 @23 NONAME
_ZN4FMOD6System18getChannelsPlayingEPi@8 @61 NONAME
_ZN4FMOD7Channel15getCurrentSoundEPPNS_5SoundE@8 @62 NONAME
_ZN4FMOD5Sound9getLengthEPjj@12 @85 NONAME
_ZN4FMOD5Sound15getNumSubSoundsEPi@8 @126 NONAME
_ZN4FMOD14ChannelControl9getPausedEPb@8 @142 NONAME
_ZN4FMOD7Channel11getPositionEPjj@12 @149 NONAME
_ZN4FMOD6System18getSpeakerPositionE12FMOD_SPEAKERPfS2_Pb@20 @165 NONAME
_ZN4FMOD5Sound11getSubSoundEiPPS0_@12 @167 NONAME
_ZN4FMOD6System10getVersionEPj@8 @188 NONAME
_ZN4FMOD6System4initEijPv@16 @192 NONAME
_ZN4FMOD14ChannelControl9isPlayingEPb@8 @193 NONAME
_ZN4FMOD6System9playSoundEPNS_5SoundEPNS_12ChannelGroupEbPPNS_7ChannelE@20 @204 NONAME
_ZN4FMOD5Sound7releaseEv@4 @214 NONAME
_ZN4FMOD6System7releaseEv@4 @216 NONAME
_ZN4FMOD5Sound7setModeEj@8 @272 NONAME
_ZN4FMOD14ChannelControl9setPausedEb@8 @286 NONAME
_ZN4FMOD6System6updateEv@4 @324 NONAME
FMOD_System_Create@4 @992 NONAME
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment