if (WIN32)
    if(CMAKE_CL_64)
        # for 64 bits platform, enable big obj (.o) handling, in order to correctly compile this (heavy) project
        if (MSVC)
            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
        elseif(MINGW)
            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -finline-functions")
        endif()
    endif()
endif()

camitk_extension(ACTION_EXTENSION
                 NEEDS_ITK
                 CXX_FLAGS "-w"
                 CEP_NAME CEP_IMAGING
                 DESCRIPTION "This action features basic ITK image processing filters"
                 DEFINES COMPILE_ITKFILTER_API
                 ENABLE_AUTO_TEST
                 TEST_FILES bassin.msh BigEndian.hdr BigEndian.img BigEndianCompressed1.hdr BigEndianCompressed1.img biorad.pic brain.mha cthead1.lsm LittleEndian1.hdr LittleEndian1.img LittleEndianCompressed1.hdr LittleEndianCompressed1.img LittleEndianZ1.hdr mini-complex-slow1.nrrd mini-ten-nomask-slow1.nrrd mini-vector-slow1.nrrd ramp1.gipl
                 ENABLE_INTEGRATION_TEST
)

# --------------------------------
# --- Specific test management ---
# --------------------------------
camitk_disable_tests(TESTS action-itkfilters-level1-6
                           action-itkfilters-level1-8
                           action-itkfilters-level1-14
                     REASON "Test failure due to ITK exception.
  When applying action Gradient Magnitude With Smoothing to test files
  biorad.pic, cthead1.lsm, mini-complex-slow1.nrrd, the following exception
  is raised:
  \"camitk-testcomponents aborted by std exception: 
  /usr/include/ITK-5.2/itkRecursiveSeparableImageFilter.hxx:224:
  ITK ERROR: RecursiveGaussianImageFilter(0x55d1275a5760): The number of
  pixels along direction 2 is less than 4. This filter requires a minimum
  of four pixels along the dimension to be processed\""
)

camitk_tests_requirement(TESTS action-itkfilters-integration-test
                         REQUIRES "NOT WIN32"
                         REASON "WIN32 OpenGL failure on a VM
  This test will always fail when run inside a VM due to OpenGL crash.
  This test will pass when run directly from a physical windows machine."
)

camitk_tests_requirement(TESTS action-itkfilters-integration-test
                         REQUIRES "${VTK_VERSION} VERSION_EQUAL 7.1.1"
                         REASON "VTK version is not equals than 7.1.1
  The default test files are written using the currently supported 
  version of VTK (VTK 7.1).
  This test will therefore fail when comparing the input to the 
  output if another version of VTK is used.
  Although everything should work fine, the output diff will make
  this test unconditionnaly fail."
)
