27 lines
		
	
	
		
			569 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			569 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
include(CheckCXXSourceCompiles)
 | 
						|
 | 
						|
check_cxx_source_compiles("
 | 
						|
    #include <signal.h>
 | 
						|
    void *addr;
 | 
						|
    int code;
 | 
						|
    void handler(int sig, siginfo_t *si, void *context) {
 | 
						|
        addr = si->si_addr;
 | 
						|
        code = si->si_code;
 | 
						|
    }
 | 
						|
    int main() {
 | 
						|
        struct sigaction sa;
 | 
						|
        sa.sa_flags = SA_SIGINFO;
 | 
						|
        sigemptyset(&sa.sa_mask);
 | 
						|
        sa.sa_sigaction = handler;
 | 
						|
        sigaction(SIGSEGV, &sa, 0);
 | 
						|
        return 0;
 | 
						|
    }"
 | 
						|
    SIGACTION_FOUND
 | 
						|
)
 | 
						|
 | 
						|
if (SIGACTION_FOUND)
 | 
						|
    add_compile_options(
 | 
						|
        -DWITH_SIGACTION
 | 
						|
    )
 | 
						|
endif (SIGACTION_FOUND)
 |