diff --git a/devices/devices.pro b/devices/devices.pro index 2d5037f8d..0199ff713 100644 --- a/devices/devices.pro +++ b/devices/devices.pro @@ -18,15 +18,22 @@ QMAKE_CXXFLAGS += -msse4.1 QMAKE_CXXFLAGS += -std=c++11 macx:QMAKE_LFLAGS += -F/Library/Frameworks +CONFIG(MSVC):DEFINES += devices_EXPORTS + CONFIG(MINGW32):LIBBLADERF = "C:\Programs\bladeRF" CONFIG(MINGW64):LIBBLADERF = "C:\Programs\bladeRF" + CONFIG(macx):LIBHACKRFSRC = "/opt/local/include" CONFIG(MINGW32):LIBHACKRFSRC = "C:\softs\hackrf\host" CONFIG(MINGW64):LIBHACKRFSRC = "C:\softs\hackrf\host" +CONFIG(MSVC):LIBHACKRFSRC = "C:\softs\hackrf\host" + CONFIG(macx):LIBLIMESUITESRC = "../../../LimeSuite-17.12.0" CONFIG(MINGW32):LIBLIMESUITESRC = "C:\softs\LimeSuite" CONFIG(MINGW64):LIBLIMESUITESRC = "C:\softs\LimeSuite" + CONFIG(MINGW32):LIBPERSEUSSRC = "C:\softs\libperseus-sdr" + CONFIG(macx):LIBIIOSRC = "../../../libiio" CONFIG(MINGW32):LIBIIOSRC = "C:\softs\libiio" CONFIG(MINGW64):LIBIIOSRC = "C:\softs\libiio" @@ -34,82 +41,135 @@ CONFIG(MINGW64):LIBIIOSRC = "C:\softs\libiio" INCLUDEPATH += $$PWD INCLUDEPATH += ../exports INCLUDEPATH += ../sdrbase -INCLUDEPATH += $$LIBBLADERF/include -INCLUDEPATH += $$LIBHACKRFSRC INCLUDEPATH += "C:\softs\boost_1_66_0" INCLUDEPATH += "C:\softs\libusb-1.0.22\include" -INCLUDEPATH += ../liblimesuite/srcmw -INCLUDEPATH += $$LIBLIMESUITESRC/src -INCLUDEPATH += $$LIBLIMESUITESRC/src/ADF4002 -INCLUDEPATH += $$LIBLIMESUITESRC/src/ConnectionRegistry -INCLUDEPATH += $$LIBLIMESUITESRC/src/FPGA_common -INCLUDEPATH += $$LIBLIMESUITESRC/src/GFIR -INCLUDEPATH += $$LIBLIMESUITESRC/src/lms7002m -INCLUDEPATH += $$LIBLIMESUITESRC/src/lms7002m_mcu -INCLUDEPATH += $$LIBLIMESUITESRC/src/Si5351C -INCLUDEPATH += $$LIBLIMESUITESRC/src/protocols -INCLUDEPATH += $$LIBLIMESUITESRC/external/cpp-feather-ini-parser +INCLUDEPATH += $$LIBBLADERF/include +INCLUDEPATH += $$LIBHACKRFSRC + +MINGW32 || MINGW64 || macx { + INCLUDEPATH += ../liblimesuite/srcmw + INCLUDEPATH += $$LIBLIMESUITESRC/src + INCLUDEPATH += $$LIBLIMESUITESRC/src/ADF4002 + INCLUDEPATH += $$LIBLIMESUITESRC/src/ConnectionRegistry + INCLUDEPATH += $$LIBLIMESUITESRC/src/FPGA_common + INCLUDEPATH += $$LIBLIMESUITESRC/src/GFIR + INCLUDEPATH += $$LIBLIMESUITESRC/src/lms7002m + INCLUDEPATH += $$LIBLIMESUITESRC/src/lms7002m_mcu + INCLUDEPATH += $$LIBLIMESUITESRC/src/Si5351C + INCLUDEPATH += $$LIBLIMESUITESRC/src/protocols + INCLUDEPATH += $$LIBLIMESUITESRC/external/cpp-feather-ini-parser +} + +MSVC { + INCLUDEPATH += "C:\softs\PothosSDR\include" +} + INCLUDEPATH += $$LIBPERSEUSSRC !macx:INCLUDEPATH += $$LIBIIOSRC CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug -!macx:SOURCES += bladerf1/devicebladerf1.cpp\ - bladerf1/devicebladerf1values.cpp\ - bladerf1/devicebladerf1shared.cpp +MINGW32 || MINGW64 { + SOURCES += bladerf1/devicebladerf1.cpp\ + bladerf1/devicebladerf1values.cpp\ + bladerf1/devicebladerf1shared.cpp -!macx:SOURCES += bladerf2/devicebladerf2.cpp\ - bladerf2/devicebladerf2shared.cpp + SOURCES += bladerf2/devicebladerf2.cpp\ + bladerf2/devicebladerf2shared.cpp -SOURCES += hackrf/devicehackrf.cpp\ - hackrf/devicehackrfvalues.cpp\ - hackrf/devicehackrfshared.cpp + SOURCES += hackrf/devicehackrf.cpp\ + hackrf/devicehackrfvalues.cpp\ + hackrf/devicehackrfshared.cpp -SOURCES += limesdr/devicelimesdr.cpp\ - limesdr/devicelimesdrparam.cpp\ - limesdr/devicelimesdrshared.cpp + SOURCES += limesdr/devicelimesdr.cpp\ + limesdr/devicelimesdrparam.cpp\ + limesdr/devicelimesdrshared.cpp -!macx:SOURCES += plutosdr/deviceplutosdr.cpp\ - plutosdr/deviceplutosdrbox.cpp\ - plutosdr/deviceplutosdrparams.cpp\ - plutosdr/deviceplutosdrscan.cpp\ - plutosdr/deviceplutosdrshared.cpp + SOURCES += plutosdr/deviceplutosdr.cpp\ + plutosdr/deviceplutosdrbox.cpp\ + plutosdr/deviceplutosdrparams.cpp\ + plutosdr/deviceplutosdrscan.cpp\ + plutosdr/deviceplutosdrshared.cpp -!macx:HEADERS += bladerf2/devicebladerf2.h\ - bladerf2/devicebladerf2shared.h + HEADERS += bladerf2/devicebladerf2.h\ + bladerf2/devicebladerf2shared.h -!macx:HEADERS += bladerf1/devicebladerf1.h\ - bladerf1/devicebladerf1param.h\ - bladerf1/devicebladerf1values.h\ - bladerf1/devicebladerf1shared.h + HEADERS += bladerf1/devicebladerf1.h\ + bladerf1/devicebladerf1param.h\ + bladerf1/devicebladerf1values.h\ + bladerf1/devicebladerf1shared.h -HEADERS += hackrf/devicehackrf.h\ - hackrf/devicehackrfparam.h\ - hackrf/devicehackrfvalues.h\ - hackrf/devicehackrfshared.h + HEADERS += hackrf/devicehackrf.h\ + hackrf/devicehackrfparam.h\ + hackrf/devicehackrfvalues.h\ + hackrf/devicehackrfshared.h -HEADERS += limesdr/devicelimesdr.h\ - limesdr/devicelimesdrparam.h\ - limesdr/devicelimesdrshared.h + HEADERS += limesdr/devicelimesdr.h\ + limesdr/devicelimesdrparam.h\ + limesdr/devicelimesdrshared.h -HEADERS += plutosdr/deviceplutosdr.h\ - plutosdr/deviceplutosdrbox.h\ - plutosdr/deviceplutosdrparams.h\ - plutosdr/deviceplutosdrscan.h\ - plutosdr/deviceplutosdrshared.h + HEADERS += plutosdr/deviceplutosdr.h\ + plutosdr/deviceplutosdrbox.h\ + plutosdr/deviceplutosdrparams.h\ + plutosdr/deviceplutosdrscan.h\ + plutosdr/deviceplutosdrshared.h +} + +macx { + SOURCES += hackrf/devicehackrf.cpp\ + hackrf/devicehackrfvalues.cpp\ + hackrf/devicehackrfshared.cpp + + SOURCES += limesdr/devicelimesdr.cpp\ + limesdr/devicelimesdrparam.cpp\ + limesdr/devicelimesdrshared.cpp + + HEADERS += hackrf/devicehackrf.h\ + hackrf/devicehackrfparam.h\ + hackrf/devicehackrfvalues.h\ + hackrf/devicehackrfshared.h + + HEADERS += limesdr/devicelimesdr.h\ + limesdr/devicelimesdrparam.h\ + limesdr/devicelimesdrshared.h +} + +MSVC { + SOURCES += hackrf/devicehackrf.cpp\ + hackrf/devicehackrfvalues.cpp\ + hackrf/devicehackrfshared.cpp + + SOURCES += limesdr/devicelimesdr.cpp\ + limesdr/devicelimesdrparam.cpp\ + limesdr/devicelimesdrshared.cpp + + HEADERS += hackrf/devicehackrf.h\ + hackrf/devicehackrfparam.h\ + hackrf/devicehackrfvalues.h\ + hackrf/devicehackrfshared.h + + HEADERS += limesdr/devicelimesdr.h\ + limesdr/devicelimesdrparam.h\ + limesdr/devicelimesdrshared.h +} LIBS += -L../sdrbase/$${build_subdir} -lsdrbase -!macx { + +MINGW32 || MINGW64 { LIBS += -L$$LIBBLADERF/lib -lbladeRF LIBS += -L../libhackrf/$${build_subdir} -llibhackrf LIBS += -L../liblimesuite/$${build_subdir} -lliblimesuite LIBS += -L../libiio/$${build_subdir} -llibiio } + macx { - LIBS -= -L../libbladerf/$${build_subdir} -llibbladerf - LIBS -= -L../libhackrf/$${build_subdir} -llibhackrf LIBS += -L/opt/local/lib -lhackrf LIBS += -L/usr/local/lib -lLimeSuite LIBS += -framework iio } + +MSVC { + LIBS += -L../libhackrf/$${build_subdir} -llibhackrf + LIBS += -LC:\softs\PothosSDR\lib -lLimeSuite +} diff --git a/devices/hackrf/devicehackrf.h b/devices/hackrf/devicehackrf.h index 4cbb39d92..291e617b6 100644 --- a/devices/hackrf/devicehackrf.h +++ b/devices/hackrf/devicehackrf.h @@ -30,7 +30,11 @@ public: protected: DeviceHackRF(); DeviceHackRF(const DeviceHackRF&) {} +#ifdef _MSC_VER + DeviceHackRF& operator=(const DeviceHackRF& other) { return *this; } +#else DeviceHackRF& operator=(const DeviceHackRF& other __attribute__((unused))) { return *this; } +#endif ~DeviceHackRF(); private: static hackrf_device *open_hackrf_from_sequence(int sequence); diff --git a/libairspy/libairspy.pro b/libairspy/libairspy.pro index 4b95674d9..fbefedc88 100644 --- a/libairspy/libairspy.pro +++ b/libairspy/libairspy.pro @@ -11,10 +11,16 @@ TARGET = libairspy CONFIG(MINGW32):LIBAIRSPYSRC = "C:\softs\libairspy\libairspy" CONFIG(MINGW64):LIBAIRSPYSRC = "C:\softs\libairspy\libairspy" +CONFIG(MSVC):LIBAIRSPYSRC = "C:\softs\libairspy\libairspy" + INCLUDEPATH += $$LIBAIRSPYSRC/src CONFIG(MINGW32):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" CONFIG(MINGW64):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" +CONFIG(MSVC):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" +CONFIG(MSVC):INCLUDEPATH += "C:\softs\pthreads-w32\include" + +CONFIG(MSVC):DEFINES += _TIMESPEC_DEFINED SOURCES = $$LIBAIRSPYSRC/src/airspy.c\ $$LIBAIRSPYSRC/src/iqconverter_float.c\ @@ -28,6 +34,8 @@ HEADERS = $$LIBAIRSPYSRC/src/airspy.h\ CONFIG(MINGW32):LIBS += -LC:\softs\libusb-1.0.22\MinGW32\dll -llibusb-1.0 CONFIG(MINGW64):LIBS += -LC:\softs\libusb-1.0.22\MinGW64\dll -llibusb-1.0 +CONFIG(MSVC):LIBS += -LC:\softs\libusb-1.0.22\MS64\dll -llibusb-1.0 +CONFIG(MSVC):LIBS += -LC:\softs\pthreads-w32\lib\x64 -lpthreadVC2 CONFIG(ANDROID):CONFIG += mobility CONFIG(ANDROID):MOBILITY = diff --git a/libairspyhf/libairspyhf.pro b/libairspyhf/libairspyhf.pro index e11678f0e..1d4bf12d7 100644 --- a/libairspyhf/libairspyhf.pro +++ b/libairspyhf/libairspyhf.pro @@ -11,10 +11,14 @@ TARGET = libairspyhf CONFIG(MINGW32):LIBAIRSPYHFSRC = "C:\softs\airspyhf\libairspyhf" CONFIG(MINGW64):LIBAIRSPYHFSRC = "C:\softs\airspyhf\libairspyhf" +CONFIG(MSVC):LIBAIRSPYHFSRC = "C:\softs\airspyhf\libairspyhf" + INCLUDEPATH += $$LIBAIRSPYHFSRC/src CONFIG(MINGW32):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" CONFIG(MINGW64):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" +CONFIG(MSVC):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" +CONFIG(MSVC):INCLUDEPATH += "C:\softs\pthreads-w32\include" SOURCES = $$LIBAIRSPYHFSRC/src/airspyhf.c\ $$LIBAIRSPYHFSRC/src/iqbalancer.c @@ -25,6 +29,8 @@ HEADERS = $$LIBAIRSPYHFSRC/src/airspyhf.h\ CONFIG(MINGW32):LIBS += -LC:\softs\libusb-1.0.22\MinGW32\dll -llibusb-1.0 CONFIG(MINGW64):LIBS += -LC:\softs\libusb-1.0.22\MinGW64\dll -llibusb-1.0 +CONFIG(MSVC):LIBS += -LC:\softs\libusb-1.0.22\MS64\dll -llibusb-1.0 +CONFIG(MSVC):LIBS += -LC:\softs\pthreads-w32\lib\x64 -lpthreadVC2 CONFIG(ANDROID):CONFIG += mobility CONFIG(ANDROID):MOBILITY = diff --git a/libhackrf/libhackrf.pro b/libhackrf/libhackrf.pro index d47e6ca02..b270160de 100644 --- a/libhackrf/libhackrf.pro +++ b/libhackrf/libhackrf.pro @@ -11,10 +11,14 @@ TARGET = libhackrf CONFIG(MINGW32):LIBHACKRFSRC = "C:\softs\hackrf\host\libhackrf" CONFIG(MINGW64):LIBHACKRFSRC = "C:\softs\hackrf\host\libhackrf" +CONFIG(MSVC):LIBHACKRFSRC = "C:\softs\hackrf\host\libhackrf" + INCLUDEPATH += $$LIBHACKRFSRC/src CONFIG(MINGW32):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" CONFIG(MINGW64):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" +CONFIG(MSVC):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" +CONFIG(MSVC):INCLUDEPATH += "C:\softs\pthreads-w32\include" SOURCES = $$LIBHACKRFSRC/src/hackrf.c @@ -22,6 +26,8 @@ HEADERS = $$LIBHACKRFSRC/src/hackrf.h CONFIG(MINGW32):LIBS += -LC:\softs\libusb-1.0.22\MinGW32\dll -llibusb-1.0 CONFIG(MINGW64):LIBS += -LC:\softs\libusb-1.0.22\MinGW64\dll -llibusb-1.0 +CONFIG(MSVC):LIBS += -LC:\softs\libusb-1.0.22\MS64\dll -llibusb-1.0 +CONFIG(MSVC):LIBS += -LC:\softs\pthreads-w32\lib\x64 -lpthreadVC2 CONFIG(ANDROID):CONFIG += mobility CONFIG(ANDROID):MOBILITY = diff --git a/librtlsdr/librtlsdr.pro b/librtlsdr/librtlsdr.pro index b6e66249a..3af498a62 100644 --- a/librtlsdr/librtlsdr.pro +++ b/librtlsdr/librtlsdr.pro @@ -11,10 +11,13 @@ TARGET = librtlsdr CONFIG(MINGW32):LIBRTLSDRSRC = "C:\softs\librtlsdr" CONFIG(MINGW64):LIBRTLSDRSRC = "C:\softs\librtlsdr" +CONFIG(MSVC):LIBRTLSDRSRC = "C:\softs\librtlsdr" + INCLUDEPATH += $$LIBRTLSDRSRC/include CONFIG(MINGW32):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" CONFIG(MINGW64):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" +CONFIG(MSVC):INCLUDEPATH += "C:\softs\libusb-1.0.22\include\libusb-1.0" SOURCES = $$LIBRTLSDRSRC/src/librtlsdr.c\ $$LIBRTLSDRSRC/src/tuner_e4k.c\ @@ -39,6 +42,7 @@ HEADERS = $$LIBRTLSDRSRC/include/reg_field.h\ CONFIG(MINGW32):LIBS += -LC:\softs\libusb-1.0.22\MinGW32\dll -llibusb-1.0 CONFIG(MINGW64):LIBS += -LC:\softs\libusb-1.0.22\MinGW64\dll -llibusb-1.0 +CONFIG(MSVC):LIBS += -LC:\softs\libusb-1.0.22\MS64\dll -llibusb-1.0 CONFIG(ANDROID):CONFIG += mobility CONFIG(ANDROID):MOBILITY = diff --git a/logging/logging.pro b/logging/logging.pro index 670800044..f3016a033 100644 --- a/logging/logging.pro +++ b/logging/logging.pro @@ -14,6 +14,8 @@ INCLUDEPATH += ../exports QMAKE_CXXFLAGS += -std=c++11 +CONFIG(MSVC):DEFINES += logging_EXPORTS + CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug diff --git a/plugins/samplesource/rtlsdr/rtlsdr.pro b/plugins/samplesource/rtlsdr/rtlsdr.pro index 3e91ff20b..f88833f4a 100644 --- a/plugins/samplesource/rtlsdr/rtlsdr.pro +++ b/plugins/samplesource/rtlsdr/rtlsdr.pro @@ -19,11 +19,14 @@ QMAKE_CXXFLAGS += -std=c++11 CONFIG(MINGW32):LIBRTLSDRSRC = "C:\softs\librtlsdr" CONFIG(MINGW64):LIBRTLSDRSRC = "C:\softs\librtlsdr" +CONFIG(MSVC):LIBRTLSDRSRC = "C:\softs\librtlsdr" + INCLUDEPATH += $$PWD INCLUDEPATH += ../../../exports INCLUDEPATH += ../../../sdrbase INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../swagger/sdrangel/code/qt5/client + !macx:INCLUDEPATH += $$LIBRTLSDRSRC/include macx:INCLUDEPATH += /opt/local/include diff --git a/qrtplib/qrtplib.pro b/qrtplib/qrtplib.pro index bfe30b4a9..adfffceca 100644 --- a/qrtplib/qrtplib.pro +++ b/qrtplib/qrtplib.pro @@ -14,6 +14,8 @@ INCLUDEPATH += ../exports QMAKE_CXXFLAGS += -std=c++11 +CONFIG(MSVC):DEFINES += qrtplib_EXPORTS + CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug diff --git a/sdrangel.windows.pro b/sdrangel.windows.pro index ff631ac39..a27c13f78 100644 --- a/sdrangel.windows.pro +++ b/sdrangel.windows.pro @@ -21,9 +21,9 @@ SUBDIRS += libairspy SUBDIRS += libairspyhf #SUBDIRS += libbladerf SUBDIRS += libhackrf -SUBDIRS += libiio -SUBDIRS += liblimesuite -SUBDIRS += libperseus +CONFIG(!MSVC):SUBDIRS += libiio +CONFIG(!MSVC):SUBDIRS += liblimesuite +CONFIG(!MSVC):SUBDIRS += libperseus SUBDIRS += librtlsdr SUBDIRS += devices SUBDIRS += mbelib @@ -36,7 +36,7 @@ SUBDIRS += plugins/samplesource/bladerf2input SUBDIRS += plugins/samplesource/filesource SUBDIRS += plugins/samplesource/hackrfinput SUBDIRS += plugins/samplesource/limesdrinput -SUBDIRS += plugins/samplesource/plutosdrinput +CONFIG(!MSVC):SUBDIRS += plugins/samplesource/plutosdrinput #SUBDIRS += plugins/samplesource/sdrdaemonsource SUBDIRS += plugins/samplesource/rtlsdr SUBDIRS += plugins/samplesource/testsource @@ -45,7 +45,7 @@ SUBDIRS += plugins/samplesink/bladerf1output SUBDIRS += plugins/samplesink/bladerf2output SUBDIRS += plugins/samplesink/hackrfoutput SUBDIRS += plugins/samplesink/limesdroutput -SUBDIRS += plugins/samplesink/plutosdroutput +CONFIG(!MSVC):SUBDIRS += plugins/samplesink/plutosdroutput #SUBDIRS += plugins/samplesink/sdrdaemonsink SUBDIRS += plugins/channelrx/chanalyzer SUBDIRS += plugins/channelrx/demodam diff --git a/sdrbase/channel/channelsinkapi.h b/sdrbase/channel/channelsinkapi.h index ee0494c35..ecfa13bf3 100644 --- a/sdrbase/channel/channelsinkapi.h +++ b/sdrbase/channel/channelsinkapi.h @@ -46,6 +46,24 @@ public: virtual QByteArray serialize() const = 0; virtual bool deserialize(const QByteArray& data) = 0; +#ifdef _MSC_VER + virtual int webapiSettingsGet( + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage) + { errorMessage = "Not implemented"; return 501; } + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage) + { errorMessage = "Not implemented"; return 501; } + + virtual int webapiReportGet( + SWGSDRangel::SWGChannelReport& response, + QString& errorMessage) + { errorMessage = "Not implemented"; return 501; } +#else virtual int webapiSettingsGet( SWGSDRangel::SWGChannelSettings& response __attribute__((unused)), QString& errorMessage) @@ -62,6 +80,7 @@ public: SWGSDRangel::SWGChannelReport& response __attribute__((unused)), QString& errorMessage) { errorMessage = "Not implemented"; return 501; } +#endif int getIndexInDeviceSet() const { return m_indexInDeviceSet; } void setIndexInDeviceSet(int indexInDeviceSet) { m_indexInDeviceSet = indexInDeviceSet; } diff --git a/sdrbase/sdrbase.pro b/sdrbase/sdrbase.pro index f714c64f6..37b0f4e91 100644 --- a/sdrbase/sdrbase.pro +++ b/sdrbase/sdrbase.pro @@ -40,7 +40,7 @@ CONFIG(MINGW64):INCLUDEPATH += "C:\softs\serialDV" CONFIG(macx):INCLUDEPATH += "../../../boost_1_64_0" -win32 { +MINGW32 || MINGW64 { HEADERS += \ dsp/dvserialengine.h \ dsp/dvserialworker.h diff --git a/swagger/swagger.pro b/swagger/swagger.pro index 1b0cd9ad9..364940d69 100644 --- a/swagger/swagger.pro +++ b/swagger/swagger.pro @@ -23,6 +23,8 @@ QMAKE_CXXFLAGS += -msse4.1 QMAKE_CXXFLAGS += -std=c++11 +CONFIG(MSVC):DEFINES += swagger_EXPORTS + CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug