Create a common Doxygen index.html from many index.html - doxygen

I have a doc folder with many folders inside. Each folder contains a doc.tag file (generated from Doxygen) and html folder with the Doxygen output. Example:
doc
|- Proj1
|- doc.tag
|- html
|- index.html
|- other doxygen html output
|- Proj2
|- doc.tag
|- html
|- index.html
|- other doxygen html output
| and so on
I want to know if there is any way of creating a common Doxygen index.html from all the index.html files in the folders. It would be nice if the Doxygen search could work through all of them.
Details: each folder is a ROS package and the documentation is generated from a CMake macro (https://github.com/ethz-asl/doxygen_catkin) used in every package's CMakeLists.txt

The solution at the end was not really straightforward. However, it is based on this answer.
The CMake macro mentioned was modified to save a file in each folder with the full path to the tag file of that specific package.
Then, a custom CMake target was created which depends on all the other targets, so that we ensure it builds the last. A postbuild command was included, running a python script which parses all the files created with path from tag files and configured a Doxyfile including the path to these tag files. And then, ran doxygen in this Doxyfile.

Related

How can I set a path to setup.cfg in vs-code for its python plugin?

I have a development directory in which a python package is kept as a sub-directory.
The package itself does not ship a setup.cfg, however, I like to have some development related settings which I do not want to push to the package, therefore I keep a setup.cfg file in the development directory.
E.g.
|- devdir/ # remote container -> /workspaces/devdir
|- .devcontainer/
|- setup.cfg
|- package/
|- package/
|- __init__.py
|- ...
My goal is to use the remote development within a docker container available for VS-Code.
Problem
VS-Code however, does not see the setup.cfg file and keeps showing errors for linters etc which would generally be handled by settings within setup.cfg.
Question
Is there a way to tell VS-Code where to look for the setup.cfg and provide that information to the python and remote plugins?
Add the entry python.linting.pylintArgs: ["--rcfile=setup.cfg"] to your .vscode/settings.json file in your project folder.

autotools/eclipse cant find my include directory

Using eclipse to create an Autotools-based project.
Starting from the "Hello World C++ Autotools Project" in the project creation wizard.
Here are the following steps.
Add a folder to the project called include.
Add a file to the include folder called Application.h.
Add #include <Application.h> entry into the src/proj.cpp file.
Trying to compile gets me a fatal error: Application.h: No such file or directory.
What is the autotools-fu I need to add my include folder to -I search path?
The Autotools plugin sorta follows the design of the GNU autoconf toolset, and so you need to configure the source files that are used by autoconf, automake, etc.
Start with the Autotools hello world project (I named mine AutoHello)
Project->New->Source folder->Folder name: include
Add the header file Application.h to the include folder. I just generated a new simple one, but you can copy an existing one too.
Add include/Makefile to the AC_CONFIG_FILES definition in configure.ac. (Note: *.ac files can be thought of as autoconf source files)
Add include to the SUBDIRS definition in Makefile.am (Note: *.am files can be thought of as automake source files)
Add a new file include/Makefile.am which will handle the automake behavior of the include folder.
Add a definition include_HEADERS to include/Makefile.am which lists all the headers contained in the folder. For this little example we simply list Application.h
In src/Makefile.am, add a definition a_out_CPPFLAGS. Give it a value of -I$(top_srcdir)/include. This tells our make target to add include as an include search path when compiling.
Project->Reconfigure Project
And that should give you a project that will compile a target that uses header files that are located in the include folder.

Sails js 9.4 - assets not being copied

First sails didn't create .tmp/public, so i did it manually. But it also doesn't copy stuff from my assets folder to my public folder. Can someone explain why that is?
#
At that time, the answers i got weren't helping,
I've updated to 9.8 now, and i don't seem to have any problem.
#
I had this same issue. When running sails lift the .tmp folder wasn't created. What finally worked for me was installing Grunt locally in the root folder of my sails app. So just run npm install grunt in your sails app folder. Having Grunt installed globally with the -g flag was apparently not enough. After the local installation, you can run sails lift again, and the .tmp folder will be created.
Hope this helps!
Where do I put my css and javascript assets in sails?
Sails uses grunt to manage assets. Some of this "management" involves syncing files between your project folder structure and the server's public folder, but as always, I'm getting ahead of myself.
The configuration of grunt is based upon the Gruntfile.js file found in the root of your sails project. There’s a lot going on in this file, however, I’m going to concentrate on the javascript and css assets.
Your Project's Assets
When you first create a project, you have the option of using the --linker flag. An example of using the flag would be sails new projectName --linker. Here’s the directory structure of the /assets folder under both scenarios:
USING the --linker flag
/assets
/images
/linker
/js
/styles
/templates
NOT USING the --linker flag
/assets
/images
/js
/styles
Note, you can “upgrade” a project that wasn't created with the --linker flag by manually creating the /linker folder and inserting it into your /assets path. You can then add /js, /styles, and /templates under /linker.
The Server's Public Folder
When starting the sails server via sails lift the following folder structure is created/sync'd via grunt within the .tmp folder:
.tmp
/public
If any of the other project folders (e.g. /images, /js, /styles, /templates) contain content they are copied/sync'd to the .tmp/publicfolder. The distinction being that if a /linker folder exists, the /js, /styles, and an additional /templates folder is created under /linker.
What happens to my layout.ejs file?
If you use the /linker folder, sails will alter your layout.ejs file to include links to your javascript and css files. Therefore, any page served from the project's /views folder will have access to the javascript and css contained in these files.
Grunt uses commented tags in layout.ejs to as placehodler for these links. For example, anything placed in the /style folder will automatically be linked in layout.ejs between these two tags:
<!--STYLES-->
<!--STYLES END-->
Anything in the /js folder will be linked between these two tags:
<!--SCRIPTS-->
<!--SCRIPTS END-->
Anyting in the /templates folder will be linked between these two tags:
<!--TEMPLATES-->
<!--TEMPLATES END-->
Accessing Sail's Assets
Here's how you access the assets under either scenario:
USING the /linker folder
/js --> /linker/js/yourFile.js
/styles --> /linker/styles/yourCSS.css
NOT USING the /linker folder
/js --> /js/yourFile.js
/styles --> /styles/yourCSS.css
It didn't appear that Grunt was doing anything on my installation including copying the assets folder. I found this post on the Google Group by Rob Wormald that finally got it working for me:
In your .sailsrc file, in the root of your project, remove the line that says "grunt" : false. That should get things working.
This was an issue with one of the generators that I believe should be corrected in the next release.
You will need to check Gruntfile.js in your sails project root directory and everything will be much easier to understand. Here is some short explanation:
Sails 'magic' during lift process are hidden in Grunt tasks.
If Sails not create .tmp/public directories in your project, it can be because permissions or something similar (its happen on Windows as I know, I not have it on Linux). Solution is to create manually .tmp/public directories and to be sure that is writable.
To get your assets copied to .tmp/public you will need to keep it inside assets/linker directory, or to update Gruntfile.js based on your specific need.
I hope this help :).

Missing Source and include folder when integrating cmake with eclipse

I am new to CMake and I am trying Integrate CMake with Eclipse.
Below is the example of the file structure that I have.
PROJECT
build/linux
build/linux/Release (Should contain the release libraries and files)
build/linux/Debug (Should contain the debug version of the files)
SRC
subProject_1
.cpp (all source files) and CMakeLists.txt 1 for this folder (creating a static library)
subproject_2
.cpp (all source files) and CMakeLists.txt 2 for this folder (creating a static library)
subproject_3
.cpp (all source files) and CMakeLists.txt 3 for this folder (creating the executable)
Include
subProject_1
.h (all the header files)
subProject_2
.h (all the header files)
subProject_3
.h (all the header files)
Can you please let me know how would I be able to integrate CMake to Eclipse. I would like to do a in Source build so that I can sub version my code.
I have tried different options of placing the main CMakelist in project folder, project/build/linux folder and so on. I can get the project working but I dont get to see the source folder as well as the include folder on eclipse.
I have tried both 1st and 2nd option specified in http://www.vtk.org/Wiki/CMake:Eclipse_UNIX_Tutorial#CMake_with_Eclipse
It's usually very simple: from a clean build directory, you configure cmake using Eclipse as generator (it's easier if you use cmake-gui), and then you import the build directory into Eclipse (File, Import, General, Existing Projects into Workspace).

eclipse dynamic web project file locations

I'm creating a new dynamic web project in Eclipse and was wondering what best practices are for folder taxonomy. Here's what I believe it is <> are folders. Can someone please verify?
<Eclipse project name>
<src>
-- .java files
<WebContent>
-- .html pages
<images>
<css>
<js>
<META-INF>
MANIFEST.MF
<WEB-INF>
web.xml
<app name>
-- .jsp pages
Here is a sample folder structure of a dynamic web project:
As you can see all static files are placed as sub-folders under the WebContent folder. By naming conventions .css files are places in the css sub-folder. JavaScript .js files are placed under the js sub-folder and any image files such as .jpeg or .png are placed in the images sub-folder. I also have an extra lib sub-folder where I placed an angularjs library to be used.
By default after creation of a dynamic web project your web.xml file looks like so:
`<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>`
meaning it will first call the listed default name files when you run your application. This is why most projects will name the files as index.html or index.jsp. NOTE: that my index.html file is directly below the WebContent folder and not in a sub-folder
Finally you can call/include your static files (.css .js and image files) from your 'index' file like so:
<link rel="stylesheet" href=css/bootstrap.min.css>
<link rel="stylesheet" href=css/bootstrap-theme.min.css>
<script type="text/javascript" src="lib/angular.min.js"></script>
<script src="js/contactsApp.js"></script>
Also your .java files will properly go in the Java Resources -> src -> {place java files here}
Put your pages under WEB-INF folder, in that way they cannot be accessed directly.
Also look at maven directory layout http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html.
To what Aleksandr M said,
WebContent folder:
The mandatory location of all web resources, including HTML, JSP, graphic files, and so on. If the files are not placed in this directory(or in a sub directory structure under this directory), the files will not be available when the application is executed on the server.
WEB-INF
Based on the Sun Microsystems Java Servlet 2.3 Specification, this directory contains the supporting Web resources for a Web application, including the web.xml file and the classes and lib directories.
Source: http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.wst.webtools.doc.user%2Ftopics%2Fccwebprj.html
I am not sure why having an app-name directory under WebContent would be considered a "best practice".
Other than that, one primary rule you should be following when coming up with a directory structure is to have all static resources under one directory. In your example, I would have a subdirectory called static under WebContent, and place the js, css and images directories under it.
That way, it'd be easier for you to (later on) configure your HTTP server to pick static resources directly from the file system rather than route requests for static resources through the servlet container.
I had this question too and can't comment yet, but Upendra Bittu's answer helped me.
http://help.eclipse.org/neon/index.jsp
Search 'jsp', click on "Creating JavaServer Pages (JSP) files"
Create a dynamic Web project if you have not already done so.
In the Project Explorer, expand your project and right click on your WebContent folder or on a subfolder under WebContent. Note that
if you choose any other folder in which to create the JSP, then it
will not be included in the WAR file that is deployed to the server.
In addition, link validation will not encompass files that are not
under the WebContent folder.
From the context menu, select New > JSP. The New Java Server Page window appears with your folder selected
I'm trying out tutorials and get lost when people don't say where they create their files, and this helped me understand what's going on, so I'm just passing it on.