set(TESTS
        #carrier_test #WIP
        #factorial_test #WIP
        test_absorber
        test_arf
        #test_arrayGeometry #WIP: needs test values
        test_attitude
        #test_boundingBox #WIP: needs test values
        #test_cache #WIP: needs test values
        #test_calibrationSource #WIP: needs test values
        #test_carrier #WIP: needs test values
        #test_crosstalk #WIP
        #test_detector #WIP: needs test values
        #test_eventfile #WIP: needs test values
        #test_frameProcessor #WIP
        test_Geometry
        #test_grading #WIP
        #test_gtiCollection #WIP
        test_impactfile
        #test_lineInfo #WIP
        #test_newPha2PiLib #WIP
        test_newSixt
        #test_operationStrategy #WIP
        test_parameters
        #test_paraminput #WIP
        test_patternAnalysis
        #test_pha2PiCorrection #WIP
        test_photonfile
        test_photonGeneration #WIP
        #test_photonImaging #WIP
        #test_photonInteractionStrategy #WIP
        test_photonProjection #WIP
        test_pixel
        test_psf
        #test_raytracing #WIP needs test values
        #test_reflectivity
        #test_readoutClock #WIP
        #test_readoutStrategy #WIP
        test_rmf
        #test_sensor #WIP
        #test_simulationParameters #WIP
        test_sixteCCFits
        #test_sixteRandom #WIP
        #test_sixteBackground #WIP
        #test_sixteException #WIP
        test_sixtePhoton
        #test_sixteProgressbar #WIP
        #test_sixteTesEventFile #WIP
        test_sixteVector
        test_StochInterp
        #test_sourceCatalog #WIP: needs test values
        #test_templateFitsFiles #WIP: needs test values
        test_vignetting
        test_xmlData
        #TODO: rewrite cmocka tests
)

foreach (TEST ${TESTS})
        add_executable(${TEST} ${TEST}.cpp
                test_photon.h
        )

        target_include_directories(${TEST} PRIVATE
                ${EXT_INCLUDE_DIRS}
                ${SIMPUT_INCLUDE_DIR})
        target_link_directories(${TEST} PRIVATE
                ${SIMPUT_LIBRARY_DIR})
        target_link_libraries(${TEST} PRIVATE
                Catch2::Catch2WithMain
                compiler_flags
                ${EXT_LIBRARIES}
                ${SIMPUT_LIBRARIES}
                libsixt
                libsixtcpp)

        add_test(NAME ${TEST}_unit COMMAND ${TEST})
        set_tests_properties(${TEST}_unit PROPERTIES
                LABELS unit
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endforeach()

add_custom_target(unit_tests
        COMMAND ${CMAKE_CTEST_COMMAND} --output-log unit_tests_output.txt -L unit
        COMMENT "Running unit tests"
)

#if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
#        add_custom_command(TARGET tests POST_BUILD VERBATIM
#                COMMAND codesign --force --timestamp --options runtime --sign <IDENTITY> tests #${CMAKE_SOURCE_DIR}/tests/Debug/runtests
#        )
#        message(HERE!!!)
#endif()
