discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] OOT Block on Windows (barely feasible?)


From: Imre Biacsics
Subject: Re: [Discuss-gnuradio] OOT Block on Windows (barely feasible?)
Date: Mon, 24 Oct 2016 13:03:06 +0200
User-agent: Opera Mail/1.0 (Win32)

(created a new, simple.dummy_ff() module, to keep testing simple)

Still no succes, two small additions:

1. In gr-simple/CMakeList.txt (under "install directories")

is written:

set(GR_INCLUDE_DIR include/simple)

And in  gr-<module>\swig\ CMakeList.txt

is written:

DESTINATION ${GR_INCLUDE_DIR}/simple/swig

Wich results in the strange path /simple/simple/swig/

This sequence is found in all examples, a windows thing??

2. in gr-simple\lib\ CMakeList.txt, this trew an error (About libs not build by this project) :

target_link_libraries(
   ${GNURADIO_RUNTIME_LIBRARIES}
   ${Boost_LIBRARIES}
   ${CPPUNIT_LIBRARIES}
   gnuradio-simple  
)

Changed that to: (And the error went away)

target_link_libraries(
   gnuradio-simple   
   ${GNURADIO_RUNTIME_LIBRARIES}
   ${Boost_LIBRARIES}
   ${CPPUNIT_LIBRARIES}  
)

Still figuring out what's wrong :(

Imre


On Mon, 24 Oct 2016 00:22:22 +0200, Geof Nieboer <address@hidden> wrote:

Imre,

With the exception of the swig files, the paths things are being installed to look logical to me for the way the windows install is built.  Seems like the swig files should be in include/pager2/swig based on how the tree is set up for the built-in blocks, though I can't say for certain.  I assume, though, that you have tried moving those files to /include/pager2/swig instead?

Past that, this error message is a problem that's been encountered before and so I would take a look at the other solutions and see what might be applicable.  Can we get the whole traceback?

Also, since you've modified pager, I would start by comparing pager2 to pager from a declarations points of view and see what's different, and also try interacting directly with your module in Python (from the run_gr prompt of course).  Hopefully that will help narrow down what's not working. 

Geof

On Sun, Oct 23, 2016 at 3:01 PM, Imre Biacsics <address@hidden> wrote:
Thanks again Geof, your hints realy helped me.

After some bumps in the table (From my head), and quite some hair laying around (Also from my head);

Cmake, configure, build and even install / uninstall ends with zero warnings & errors.
I'll send you a .zip file by direct mail. (Be aware, it's a mess)

The blocks are visible in GRC, but it still throws the:  'module' object has no attribute <blockname> 
Snipping out the docs entries, installing does this: (something wierd happens in the middle)

1> -- Installing: C:/Program Files/GNURadio-3.7/lib/cmake/pager2/pager2Config.cmake
1> -- Installing: C:/Program Files/GNURadio-3.7/include/pager2/api.h
1> -- Installing: C:/Program Files/GNURadio-3.7/include/pager2/flex_frame.h
1> -- Installing: C:/Program Files/GNURadio-3.7/include/pager2/slicer_fb.h
1> -- Installing: C:/Program Files/GNURadio-3.7/include/pager2/flex_deinterleave.h
1> -- Installing: C:/Program Files/GNURadio-3.7/include/pager2/flex_parse.h
1> -- Installing: C:/Program Files/GNURadio-3.7/include/pager2/flex_sync.h
1> -- Installing: C:/Program Files/GNURadio-3.7/lib/gnuradio-pager2.lib
1> -- Installing: C:/Program Files/GNURadio-3.7/bin/gnuradio-pager2.dll
1> -- Installing: C:/Program Files/GNURadio-3.7/Lib/site-packages/pager2/_pager2_swig.pyd
1> -- Installing: C:/Program Files/GNURadio-3.7/Lib/site-packages/pager2/pager2_swig.py
1> -- Installing: C:/Program Files/GNURadio-3.7/Lib/site-packages/pager2/pager2_swig.pyc
1> -- Installing: C:/Program Files/GNURadio-3.7/Lib/site-packages/pager2/pager2_swig.pyo

-------------------- (Uh, /pager/pager/... ???)

1> -- Installing: C:/Program Files/GNURadio-3.7/include/pager2/pager2/swig/pager2_swig.i
1> -- Installing: C:/Program Files/GNURadio-3.7/include/pager2/pager2/swig/pager2_swig_doc.i

1> -- Installing: C:/Program Files/GNURadio-3.7/Lib/site-packages/pager2/__init__.py
1> -- Installing: C:/Program Files/GNURadio-3.7/Lib/site-packages/pager2/__init__.pyc
1> -- Installing: C:/Program Files/GNURadio-3.7/Lib/site-packages/pager2/__init__.pyo
1> -- Installing: C:/Program Files/GNURadio-3.7/share/gnuradio/grc/blocks/pager2_flex_deinterleave.xml
1> -- Installing: C:/Program Files/GNURadio-3.7/share/gnuradio/grc/blocks/pager2_flex_sync.xml
1> -- Installing: C:/Program Files/GNURadio-3.7/share/gnuradio/grc/blocks/pager2_slicer_fb.xml

Hmmm, got the feeling i'm so close.

Imre Biacsics



Thank you, -o- wise one. 

In fact that was de only problem: Now i can build all projects and even build install.
But the module was not properly installed and threw the:  

AttributeError: 'module' object has no attribute

In the GRC terminal.

I narrowed that down to the file /swig/pager2_swig.i  (Forgot to use the gr_modtool add command)
After properly adding the block it looks like this:

 
/* -*- c++ -*- */

#define PAGER2_API

%include "gnuradio.i" // the common stuff

//load generated python docstrings
%include "pager2_swig_doc.i"

%{
#include "pager2/flex_deinterleave.h"
%}

%include "pager2/flex_deinterleave.h"
GR_SWIG_BLOCK_MAGIC2(pager2, flex_deinterleave);
Wich created new issues i do not understand:

Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol "__declspec(dllimport) void __cdecl pmt::intrusive_ptr_release(class pmt::pmt_base *)" (address@hidden@@address@hidden@@Z) referenced in function "public: __cdecl boost::intrusive_ptr<class pmt::pmt_base>::~intrusive_ptr<class pmt::pmt_base>(void)" (address@hidden@pmt@@@boost@@address@hidden) _pager2_swig F:\grc\OOTmodules\gr-pager2\build\swig\pager2_swigPYTHON_wrap.obj 1

After commenting out like this:

%{
/* #include "pager2/flex_deinterleave.h" */
%}

/*
%include "pager2/flex_deinterleave.h"
GR_SWIG_BLOCK_MAGIC2(pager2, flex_deinterleave);
*/

It builds again, what am i missing....

Imre Biacsics






On Sat, 22 Oct 2016 03:54:38 +0200, Geof Nieboer <address@hidden> wrote:

Look in the cmake file(s) for something along the lines of:
COMMAND ""

If you find it, delete the double quotes.  I searched and found one in cmake\Modules\UseSWIG.cmake, so I would start there.

Geof

On Fri, Oct 21, 2016 at 9:20 PM, Imre Biacsics <address@hidden> wrote:
Dear specialists,

One step solved, creating two other issues. I'am sure: overlooking something very obvious. Sorry for that.
The two projects throw a "Error MSB6006 "cmd.exe" exited with code 9009."

Wich makes sense becease: 

'""' is not recognized as an internal or external command, operable program or batch file.

I hope someone can shine a light on this. Thanks in advance.

Imre Biacsics

Partial build output:

7>Target "CustomBuild" in file "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets" from project "F:\grc\OOTmodules\gr-pager2\build\swig\_pager2_swig.vcxproj" (target "_BuildGenerateSourcesAction" depends on it):
7> Using "CustomBuild" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Build.CppTasks.Common.dll".
7> Task "CustomBuild"
7> Forcing rebuild of all source files due to missing command TLog "F:\grc\OOTmodules\gr-pager2\build\swig\_pager2_swig.dir\Debug\_pager2_swig.tlog\custombuild.command.1.tlog".
7> setlocal
7> "C:\Program Files (x86)\cmake\bin\cmake.exe" -HF:/grc/OOTmodules/gr-pager2 -BF:/grc/OOTmodules/gr-pager2/build --check-stamp-file F:\grc\OOTmodules\gr-pager2\build\swig\CMakeFiles\generate.stamp
7> if %errorlevel% neq 0 goto :cmEnd
7> :cmEnd
7> endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
7> :cmErrorLevel
7> exit /b %1
7> :cmDone
7> if %errorlevel% neq 0 goto :VCEnd
7> setlocal
7> ""
7> if %errorlevel% neq 0 goto :cmEnd
7> :cmEnd
7> endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
7> :cmErrorLevel
7> exit /b %1
7> :cmDone
7> if %errorlevel% neq 0 goto :VCEnd
7> setlocal
7> ""
7> if %errorlevel% neq 0 goto :cmEnd
7> :cmEnd
7> endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
7> :cmErrorLevel
7> exit /b %1
7> :cmDone
7> if %errorlevel% neq 0 goto :VCEnd
7> Building Custom Rule F:/grc/OOTmodules/gr-pager2/swig/CMakeLists.txt
7> CMake does not need to re-run because F:\grc\OOTmodules\gr-pager2\build\swig\CMakeFiles\generate.stamp is up-to-date.
7> '""' is not recognized as an internal or external command,
7> operable program or batch file.
7> 1>
7>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" exited with code 9009.
7> Done executing task "CustomBuild" -- FAILED.
7> 1>
7>Done building target "CustomBuild" in project "_pager2_swig.vcxproj" -- FAILED.
7>
7>Build FAILED.
7>
7>Time Elapsed 00:00:00.11
========== Rebuild All: 6 succeeded, 1 failed, 0 skipped ==========





On Wed, 19 Oct 2016 14:09:10 +0200, Geof Nieboer <address@hidden> wrote:

Imre,

Glad you had success.  I'll work to replicate your steps, and then towards building a "developer pack" as an add-on to the basic install (to include adding all the many symbol files for debugging purposes).

Geof

On Wed, Oct 19, 2016 at 3:45 AM, Imre Biacsics <address@hidden> wrote:
I am going to answer my own question.

"How simple is the solution when the cause is known"

I was a bit dumb:

Somewhere in the scripts, spaces are removed. The result was that is looked for:

F:/grc/OOTmodules/

My real path :

F:/grc/OOT modules/

:( sorry

Imre Biacsics


(Swigwin issue)

Following up this message
https://lists.gnu.org/archive/html/discuss-gnuradio/2016-07/msg00108.html
With another question.

My goal was to sort out all the dependecies and paths to succesfully
automate the process.
When done I will share my findings.

In short, I did this:

- Installed Geof's win64 by msi, Cmake 3.3, VS2015 (community edition).
- Copied the dependecies from Geof's 'GNURadio_Windows_Build_Scripts'
after running it once: CppUnit, Boost, Swig, pkg-config.
- Used Gavin's tips to automate the gr-modtool New & Add functionality.
- Created a new terminal link, called: "Gnuradio modtool prompt",
implementing:

    * The orginal "Gnuradio command prompt"
    * The the "vs 2015 win64 prompt".
    * Added path's for the dependecies statically. (For better control).

- Created .bat files for cmake & build.

(As example project I converted the gr-pager modules to OOT code)

Roadmap:

1. Create OOT (MT_New.bat)
2. Add module 'pager2' (MT_Add.bat)
3. Insert converted pager code.
4. Cmake (CCmake.bat)
5. Build (Build.bat)

For readabillity i won't post the complete output, but step 4 gives me
some warnings (4x) i don't understand (Maybe linked to the error in step
5):

CMake Warning (dev) at cmake/Modules/UseSWIG.cmake:300
(target_link_libraries):
   Link library type specifier "optimized" is followed by specifier "debug"
   instead of a library name.  The first specifier will be ignored.
Call Stack (most recent call first):
   cmake/Modules/GrSwig.cmake:174 (SWIG_LINK_LIBRARIES)
   swig/CMakeLists.txt:50 (GR_SWIG_MAKE)
This warning is for project developers.  Use -Wno-dev to suppress it.

But the result:

-- Configuring done
-- Generating done
-- Build files have been written to: F:/grc/OOT modules/gr-pager2/build

Step 5 produces 1 error:

(SNIP!)

building ZERO_CHECK => Succes
building gnuradio-pager2 => Succes!!!

building pager2_swig_swig_2d0df,
    is building _pager2_swig_swig_tag,
    is building pager2_swig_swig_doc,
    is building _pager2_swig_doc_tag  => Succes

Then:

CUSTOMBUILD : error : tag OUTPUT_DIRECTORY: Output directory
`F:/grc/OOTmodules/gr-pager2/build/swig/pager2_swig_doc_swig_docs'
does not exist and cannot be created [F:\grc\OOT
modules\gr-pager2\build\swig\pager2_swig_swig_doc.vcxproj]

That folder exists and is readable/writable (It holds a doxygen file and a
/xml subfolder), but following the naming conventions (These folders names
reflects the project names), something is wrong: there is no project named
'pager2_swig_doc_swig_docs'.

Do not know how to fix this, but think it should be :
"_pager2_swig_swig_doc"

----------------------
Okay.... so.... ignored it and inserted the .dll, .lib, block xml in GRC,
almost worked!
Blocks are visible and insertable, but starting the flowgraph is throws:

'module' object has no attribute <blockname>

Googling on that it's told "Your modules is not propery swigged", that
makes sense, given the errors.

----------------------

Someone got clue to overcome this bump?

Thanks in Advance,

Imre Biacsics

_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio





--
Using Opera's mail client: http://www.opera.com/mail/




--
Using Opera's mail client: http://www.opera.com/mail/




--
Using Opera's mail client: http://www.opera.com/mail/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]