]> git.mxchange.org Git - flightgear.git/blobdiff - README.cmake
Reset: AIbase, drop references
[flightgear.git] / README.cmake
index f6c0e26825e134a6254276eab3c8ad7efe1b07b7..767f9c779c6a3bf476c13963a5da2c6f89a3ef8f 100644 (file)
@@ -1,4 +1,7 @@
 Getting started with CMake
+==========================
+
+[For Windows build instructions see README.msvc]
 
 (These instructions apply to Unix-like systems, including Cygwin and Mac. To
 build using Visual Studio or some other IDE supported by CMake, most of the
@@ -8,8 +11,8 @@ Always compile in a separate directory to the code. For example, if the
 code (eg, from Git) is at /home/curt/projects/flightgear, you might create
 /home/curt/projects/fgbuild. Change into the new directory, and run
 
-    cmake ../flightger
-    
+    cmake ../flightgear
+
 To generate standard Unix Makefiles in fgbuild.
 
 Probably you want to specify an install prefix:
@@ -20,21 +23,32 @@ Note the install prefix is automatically searched for required libraries
 and header files, so if you install PLIB, OpenSceneGraph and SimGear to the
 same prefix, most configuration options are unnecessary.
 
-To specify that a particular dependency is in a non-standard location, most
-libraries support an environment variable - eg PLIBDIR or OSG_ROOT - to
-allow precise selection.
+If for some reason you have a dependency (or several) at a different prefix,
+you can specify one or more via CMAKE_PREFIX_PATH:
+
+    cmake ../flightgear -DCMAKE_PREFIX_PATH="/opt/local;/opt/fgfs"
+
+(note the use of semi-colons to specify multiple prefix paths)
+
+Standard prefixes are searched automatically (/usr, /usr/local, /opt/local)
+
+Most dependencies also expose an environment variable to specify their
+installation directory explicitly eg OSG_DIR or PLIBDIR. Any of the methods
+described above will work, but specifying an INSTALL_PREFIX or PREFIX_PATH is
+usually simpler.
 
 By default, we select a release build. To create a debug build, use
 
     cmake ../flightgear -DCMAKE_BUILD_TYPE=Debug
-    
+
 (or MinSizeRel, or RelWithDbg)
 
 Debug builds will automatically use corresponding debug builds of required
 libraries, if they are available. For example you can install debug builds of
 SimGear and OpenSceneGraph, and a debug FlightGear build will use them.
 
-(Debug builds of libraries have the 'd' suffix by default)
+(Debug builds of libraries have the 'd' suffix by default - Release builds
+have no additional suffix)
 
 Note most IDE projects (eg Xcode and Visual Studio) support building all the
 build types from the same project, so you can omit the CMAKE_BUILD_TYPE option
@@ -53,17 +67,21 @@ To set an optional feature, do
 
     cmake ../flightgear -DFEATURE_NAME=ON
 
+(or 'OFF' to disable )
+
 To see the variables that can be configured / are currently defined, you can
 run one of the GUI front ends, or the following command:
 
-    cmake ../flighgear -L
+    cmake ../flightgear -L
 
 Add 'A' to see all the options (including advanced options), or 'H' to see
 the help for each option (similar to running configure --help under autoconf):
 
     cmake ../flightgear -LH
 
+
 Build Targets
+=============
 
 For a Unix makefile build, 'make dist', 'make uninstall' and 'make test' are
 all available and should work as expected. 'make clean' is also as normal,
@@ -80,7 +98,7 @@ For target conditional files, you can append to the SOURCES or HEADERS lists
 inside an if() test, for example:
 
     if(APPLE)
-       list(APPEND SOURCES extraFile1.cxx extraFile2.cxx)
+        list(APPEND SOURCES extraFile1.cxx extraFile2.cxx)
     endif()
 
 Setting include directories
@@ -98,11 +116,11 @@ Use set_target_property(), for example
 
     set_target_property(fgfs PROPERTIES
             COMPILE_DEFINITIONS FOO BAR=1)
-            
+
 You can set a property on an individual source file:
 
     set_property(SOURCE myfile.cxx PROPERTY COMPILE_FLAGS "-Wno-unsigned-compare")
-            
+
 Detecting Features / Libraries
 
 For most standard libraries (Gtk, wxWidget, Python, GDAL, Qt, libXml, Boost),
@@ -113,7 +131,7 @@ cmake provides a standard helper. To see the available modules, run:
 In the root CMakeLists file, use a statement like:
 
     find_package(OpenGL REQUIRED)
-    
+
 Each package helper sets various variables such aaa_FOUND, aaa_INCLUDE_DIR,
 and aaa_LIBRARY. Depending on the complexity of the package, these variables
 might have different names (eg, OPENSCENEGRAPH_LIBRARIES).
@@ -125,18 +143,19 @@ directory, eg /usr/share/cmake/modules on Unix systems.
 
 Note libraries support by pkg-config can be handled directly, with no need
 to create a custom FindABC helper.
-            
+
 Adding a new executable target
 
     add_executable(myexecutable ${SOURCES} ${HEADERS})
     target_link_libraries(myexecutable .... libraries ... )
     install(TARGETS myexecutable RUNTIME DESTINATION bin)
-    
+
 (If the executable should not be installed, omit the final line above)
 
 If you add an additional line
 
     add_test(testname ${EXECUTABLE_OUTPUT_PATH}/myexecutable)
-    
+
 Then running 'make test' will run your executable as a unit test. The
 executable should return either a success or failure result code.
+