if(NOT COMMAND check_cxx_source_compiles) include(CheckCXXSourceCompiles) endif() macro(define_target_variables) check_cxx_source_compiles("int main() { return __i386__; }" i386) check_cxx_source_compiles("int main() { return __x86_64__; }" x86_64) check_cxx_source_compiles("int main() { return __s390__; }" s390) if(APPLE) check_cxx_source_compiles("int main() { return __arm64__; }" ARM) check_cxx_source_compiles("int main() { return __ppc64__; }" PPC64) check_cxx_source_compiles("int main() { return __ppc__; }" PPC) else() check_cxx_source_compiles("int main() { return __arm__; }" ARM) check_cxx_source_compiles("int main() { return __PPC64__; }" PPC64) check_cxx_source_compiles("int main() { return __PPC__; }" PPC) endif() check_cxx_source_compiles("int main() { return __FreeBSD__; }" FreeBSD) check_cxx_source_compiles("int main() { return __MINGW__; }" MINGW) check_cxx_source_compiles("int main() { return __linux; }" LINUX) check_cxx_source_compiles("int main() { return __APPLE__; }" OSX) endmacro()