Conditional subdirectory build

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Conditional subdirectory build

David Doria-2-3
I am packaging a VTK filter. I am trying to give the user the option
of additionally compiling the Paraview plugin for the filter (in the
.../plugin directory). I wanted to make a BUILD_PARAVIEW_PLUGIN
variable that they could set to "ON" or "OFF". If it is set to "ON",
CMake should proceed with processing the plugin subdirectory. Else,
just ignore it. However, when I generate the makefiles in both cases,
they seem to be the same and neither includes the plugin subdirectory.

Can anyone see where I have gone wrong?

My main CMakeLists.txt file is:
------------------------------
cmake_minimum_required(VERSION 2.6)
    if(COMMAND cmake_policy)
      cmake_policy(SET CMP0003 NEW)
    endif(COMMAND cmake_policy)

PROJECT(vtkPointSetOutlierRemoval)

FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})

SET(BUILD_PARAVIEW_PLUGIN ON CACHE STRING "Build Paraview plugin?" FORCE)

if(BUILD_PARAVIEW_PLUGIN==ON)
 ADD_SUBDIRECTORY(plugin)
endif(BUILD_PARAVIEW_PLUGIN==ON)

ADD_EXECUTABLE(vtkPointSetOutlierRemoval Example.cxx
vtkPointSetOutlierRemoval.cxx)
TARGET_LINK_LIBRARIES(vtkPointSetOutlierRemoval vtkHybrid )

-------------------------------
And the plugin subdirectory CMakeLists.txt file is:

FIND_PACKAGE(ParaView REQUIRED)
INCLUDE(${PARAVIEW_USE_FILE})

ADD_PARAVIEW_PLUGIN(PointSetOutlierRemoval "1.0"
  SERVER_MANAGER_XML PointSetOutlierRemoval.xml
SERVER_MANAGER_SOURCES ../vtkPointSetOutlierRemoval.cxx
)


Thanks,

David
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: Conditional subdirectory build

David Cole
if(BUILD_PARAVIEW_PLUGIN==ON)
  should just be
if(BUILD_PARAVIEW_PLUGIN)

cmake --help-command IF
will explain...

There is no "==" but there are EQUAL and STREQUAL operators. In the case of a boolean option variable, the syntax "if(variable)" if preferred.


HTH,
David


On Sun, Nov 29, 2009 at 9:10 AM, David Doria <[hidden email]> wrote:
I am packaging a VTK filter. I am trying to give the user the option
of additionally compiling the Paraview plugin for the filter (in the
.../plugin directory). I wanted to make a BUILD_PARAVIEW_PLUGIN
variable that they could set to "ON" or "OFF". If it is set to "ON",
CMake should proceed with processing the plugin subdirectory. Else,
just ignore it. However, when I generate the makefiles in both cases,
they seem to be the same and neither includes the plugin subdirectory.

Can anyone see where I have gone wrong?

My main CMakeLists.txt file is:
------------------------------
cmake_minimum_required(VERSION 2.6)
   if(COMMAND cmake_policy)
     cmake_policy(SET CMP0003 NEW)
   endif(COMMAND cmake_policy)

PROJECT(vtkPointSetOutlierRemoval)

FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})

SET(BUILD_PARAVIEW_PLUGIN ON CACHE STRING "Build Paraview plugin?" FORCE)

if(BUILD_PARAVIEW_PLUGIN==ON)
 ADD_SUBDIRECTORY(plugin)
endif(BUILD_PARAVIEW_PLUGIN==ON)

ADD_EXECUTABLE(vtkPointSetOutlierRemoval Example.cxx
vtkPointSetOutlierRemoval.cxx)
TARGET_LINK_LIBRARIES(vtkPointSetOutlierRemoval vtkHybrid )

-------------------------------
And the plugin subdirectory CMakeLists.txt file is:

FIND_PACKAGE(ParaView REQUIRED)
INCLUDE(${PARAVIEW_USE_FILE})

ADD_PARAVIEW_PLUGIN(PointSetOutlierRemoval "1.0"
 SERVER_MANAGER_XML PointSetOutlierRemoval.xml
SERVER_MANAGER_SOURCES ../vtkPointSetOutlierRemoval.cxx
)


Thanks,

David
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: Conditional subdirectory build

Marcel Loose
In reply to this post by David Doria-2-3
Hi David,

Why not use OPTION(...) for this, or if you really want to the
equivalent: set(MYVAR ON CACHE BOOL "My variable"). Don't use FORCE, or
you will overwrite any changes the user made.

Best regards,
Marcel Loose.

On Sun, 2009-11-29 at 10:12 -0500, David Cole wrote:

> if(BUILD_PARAVIEW_PLUGIN==ON)
>   should just be
> if(BUILD_PARAVIEW_PLUGIN)
>
>
> cmake --help-command IF
> will explain...
>
>
> There is no "==" but there are EQUAL and STREQUAL operators. In the
> case of a boolean option variable, the syntax "if(variable)" if
> preferred.
>
>
>
>
> HTH,
> David
>
>
>
> On Sun, Nov 29, 2009 at 9:10 AM, David Doria <[hidden email]>
> wrote:
>         I am packaging a VTK filter. I am trying to give the user the
>         option
>         of additionally compiling the Paraview plugin for the filter
>         (in the
>         .../plugin directory). I wanted to make a
>         BUILD_PARAVIEW_PLUGIN
>         variable that they could set to "ON" or "OFF". If it is set to
>         "ON",
>         CMake should proceed with processing the plugin subdirectory.
>         Else,
>         just ignore it. However, when I generate the makefiles in both
>         cases,
>         they seem to be the same and neither includes the plugin
>         subdirectory.
>        
>         Can anyone see where I have gone wrong?
>        
>         My main CMakeLists.txt file is:
>         ------------------------------
>         cmake_minimum_required(VERSION 2.6)
>            if(COMMAND cmake_policy)
>              cmake_policy(SET CMP0003 NEW)
>            endif(COMMAND cmake_policy)
>        
>         PROJECT(vtkPointSetOutlierRemoval)
>        
>         FIND_PACKAGE(VTK REQUIRED)
>         INCLUDE(${VTK_USE_FILE})
>        
>         SET(BUILD_PARAVIEW_PLUGIN ON CACHE STRING "Build Paraview
>         plugin?" FORCE)
>        
>         if(BUILD_PARAVIEW_PLUGIN==ON)
>          ADD_SUBDIRECTORY(plugin)
>         endif(BUILD_PARAVIEW_PLUGIN==ON)
>        
>         ADD_EXECUTABLE(vtkPointSetOutlierRemoval Example.cxx
>         vtkPointSetOutlierRemoval.cxx)
>         TARGET_LINK_LIBRARIES(vtkPointSetOutlierRemoval vtkHybrid )
>        
>         -------------------------------
>         And the plugin subdirectory CMakeLists.txt file is:
>        
>         FIND_PACKAGE(ParaView REQUIRED)
>         INCLUDE(${PARAVIEW_USE_FILE})
>        
>         ADD_PARAVIEW_PLUGIN(PointSetOutlierRemoval "1.0"
>          SERVER_MANAGER_XML PointSetOutlierRemoval.xml
>         SERVER_MANAGER_SOURCES ../vtkPointSetOutlierRemoval.cxx
>         )
>        
>        
>         Thanks,
>        
>         David
>         _______________________________________________
>         Powered by www.kitware.com
>        
>         Visit other Kitware open-source projects at
>         http://www.kitware.com/opensource/opensource.html
>        
>         Please keep messages on-topic and check the CMake FAQ at:
>         http://www.cmake.org/Wiki/CMake_FAQ
>        
>         Follow this link to subscribe/unsubscribe:
>         http://www.cmake.org/mailman/listinfo/cmake
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake