Improve the automation of adding modules. now it just requires an input on the cmake list file
This commit is contained in:
1 parent
5712a01bf9
commit
035c116cd4
5 files changed
+19
-21
No files matched your search
@@ -73,8 +73,19 @@ INCLUDE( cmake/LibFFmpeg.cmake )
|
||||
SET( MODULES_DIR ${SRC_DIR}/modules )
|
||||
INCLUDE_DIRECTORIES( ${MODULES_DIR} )
|
||||
FILE( GLOB ModuleCMakeFiles cmake/Module*.cmake )
|
||||
|
||||
file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/ModulesListMacro.h "// This files defines the macro to \n"
|
||||
"// define a list of modules\n"
|
||||
"#ifndef __MODULESLISTMACRO_H__\n#define __MODULESLISTMACRO_H__\n"
|
||||
"#define REGISTER_ALL_MODULES ")
|
||||
|
||||
file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "// This files add the header files of each module\n"
|
||||
"#ifndef __MODULESLISTHEADER_H__\n#define __MODULESLISTHEADER_H__\n" )
|
||||
INCLUDE( ${ModuleCMakeFiles} )
|
||||
|
||||
file( APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListMacro.h "\n#endif // __MODULESLISTMACRO_H__\n" )
|
||||
file( APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#endif // __MODULESLISTHEADER_H__\n" )
|
||||
|
||||
######################################################################################
|
||||
# Main config.h
|
||||
######################################################################################
|
||||
|
||||
@@ -105,7 +105,8 @@ macro(ADD_MODULE name file )
|
||||
set(MODULES_LIBS ${MODULES_LIBS} ${__modulename})
|
||||
add_definitions( -DUSE_${name} )
|
||||
LIST(APPEND MODULES_LIST ${name} )
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/moduleslist.cpp "REGISTER_MODULE( ${name} );")
|
||||
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#include \"${name}.h\"\n")
|
||||
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListMacro.h "\\\n REGISTER_MODULE( ${name} ); ")
|
||||
endif()
|
||||
unset(__modulename)
|
||||
endmacro()
|
||||
|
||||
@@ -26,23 +26,12 @@
|
||||
|
||||
#include "ModulesHandle.h"
|
||||
#include "SubWindowHandle.h"
|
||||
|
||||
// List of modules includes
|
||||
#include "FilterFrame.h"
|
||||
#include "FrameDifference.h"
|
||||
#include "ModulesListHeader.h"
|
||||
#include "ModulesListMacro.h"
|
||||
|
||||
namespace plaYUVer
|
||||
{
|
||||
|
||||
Void ModulesHandle::ModulesList( Bool bCreate )
|
||||
{
|
||||
|
||||
// Register Modules
|
||||
REGISTER_MODULE( FilterFrame );
|
||||
REGISTER_MODULE( FrameDifference );
|
||||
|
||||
}
|
||||
|
||||
ModulesHandle::ModulesHandle( QWidget * parent, QMdiArea *mdiArea ) :
|
||||
QObject( parent ),
|
||||
m_pcParent( parent ),
|
||||
@@ -52,7 +41,8 @@ ModulesHandle::ModulesHandle( QWidget * parent, QMdiArea *mdiArea ) :
|
||||
{
|
||||
// configure class
|
||||
setParent( m_pcParent );
|
||||
ModulesList( true );
|
||||
// Register Modules
|
||||
REGISTER_ALL_MODULES
|
||||
}
|
||||
|
||||
ModulesHandle::~ModulesHandle()
|
||||
|
||||
@@ -78,7 +78,6 @@ private:
|
||||
QVector<QAction*> m_arrayActions;
|
||||
|
||||
Void appendModule( PlaYUVerModuleIf* );
|
||||
Void ModulesList( Bool bCreate );
|
||||
|
||||
private Q_SLOTS:
|
||||
void selectModule( int index );
|
||||
|
||||
@@ -56,11 +56,8 @@ enum __PlaYUVerModuleRequirements
|
||||
{ \
|
||||
if( USE_##X ) \
|
||||
{ \
|
||||
if( bCreate ) \
|
||||
{ \
|
||||
X *pMod = new X(); \
|
||||
appendModule( pMod ); \
|
||||
} \
|
||||
X *pMod = new X(); \
|
||||
appendModule( pMod ); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user