title: How to set linker flags for OpenMP in CMake's try_compile function
body: <p>I would like to verify that the current compiler can build with openmp support.  The application has do deploy across a wide variety of unix systems, some of which might have old versions of OpenMP, and I would like to test for important OpenMP functionality.  So, I want to build a test source file that incorporates some of the OpenMP calls.</p>
  
  <p>Thus, I created a very simple test file, and attempted to use the try_compile function from CMake.  Ufortunately, it doesn't seem to apply the -fopenmp linker flag correctly.  Does anyone know how to either force the linker flag or to see if the linker flag is being applied anywhere?</p>
  
  <p>from CMakeLists.txt</p>
  
  <pre><code>try_compile(
      HAVE_OPENMP
      ${APBS_ROOT}/src/config
      ${APBS_ROOT}/src/config/omp_test.c
      CMAKE_FLAGS "-DCMAKE_C_FLAGS=-fopenmp -DCMAKE_EXE_LINKER_FLAGS=-fopenmp"
      OUTPUT_VARIABLE TRY_COMPILE_OUTPUT
      )
  </code></pre>
  
  <p>from omp_test.c</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;omp.h&gt;
  
  int main()
  {
      int i;
      int threadID = 0;
      #pragma omp parallel for private(i, threadID)
      for(i = 0; i &lt; 16; i++ )
      {
          threadID = omp_get_thread_num();
          #pragma omp critical
          {
              printf("Thread %d reporting\n", threadID);
          }
      }
      return 0;
  }
  </code></pre>
  
  <p>The resulting output is</p>
  
  <pre><code>Change Dir: src/config/CMakeFiles/CMakeTmp
  
  Run Build Command:/usr/bin/make "cmTryCompileExec/fast"
  /usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build
  make[1]: Entering directory `src/config/CMakeFiles/CMakeTmp'
  /usr/bin/cmake -E cmake_progress_report /data/work/source/apbs/src/config/CMakeFiles/CMakeTmp/CMakeFiles 1
  Building C object CMakeFiles/cmTryCompileExec.dir/omp_test.c.o
  /usr/bin/gcc    -o CMakeFiles/cmTryCompileExec.dir/omp_test.c.o   -c /data/work/source/apbs/src/config/omp_test.c
  Linking C executable cmTryCompileExec
  /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
  /usr/bin/gcc         CMakeFiles/cmTryCompileExec.dir/omp_test.c.o  -o cmTryCompileExec -rdynamic 
  CMakeFiles/cmTryCompileExec.dir/omp_test.c.o: In function `main':
  omp_test.c:(.text+0x19): undefined reference to `omp_get_thread_num'
  collect2: ld returned 1 exit status
  make[1]: *** [cmTryCompileExec] Error 1
  make[1]: Leaving directory `src/config/CMakeFiles/CMakeTmp'
  make: *** [cmTryCompileExec/fast] Error 2
  
  CMake Error at CMakeLists.txt:688 (message):
    Test OpenMP program would not build.  OpenMP disabled
  </code></pre>
  
  <p>When I try to compile the test program on the command line, it works fine</p>
  
  <pre><code>src/config$ gcc -fopenmp omp_test.c -o omp_test &amp;&amp; ./omp_test
  Thread 1 reporting
  Thread 4 reporting
  Thread 7 reporting
  Thread 11 reporting
  Thread 9 reporting
  Thread 12 reporting
  Thread 6 reporting
  Thread 8 reporting
  Thread 15 reporting
  Thread 13 reporting
  Thread 10 reporting
  Thread 0 reporting
  Thread 3 reporting
  Thread 2 reporting
  Thread 5 reporting
  Thread 14 reporting
  </code></pre>