aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHoward Butler <howard@hobu.co>2014-09-13 21:37:05 +0000
committerHoward Butler <howard@hobu.co>2014-09-13 21:37:05 +0000
commitc90714e3b141e2ee02d110a73818f71f726a35fb (patch)
tree8ec286add1ab74928d39d9125aaafc44de4f2326 /src
parent86dea6ab8cc609cf5da3f20dfdd2299c4f5bfc12 (diff)
downloadPROJ-c90714e3b141e2ee02d110a73818f71f726a35fb.tar.gz
PROJ-c90714e3b141e2ee02d110a73818f71f726a35fb.zip
mostly working CMake configuration #243
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@2525 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src')
-rw-r--r--src/bin_cs2cs.cmake14
-rw-r--r--src/bin_geod.cmake16
-rw-r--r--src/bin_proj.cmake19
-rw-r--r--src/lib_proj.cmake315
4 files changed, 364 insertions, 0 deletions
diff --git a/src/bin_cs2cs.cmake b/src/bin_cs2cs.cmake
new file mode 100644
index 00000000..00f177a3
--- /dev/null
+++ b/src/bin_cs2cs.cmake
@@ -0,0 +1,14 @@
+set(CS2CS_SRC cs2cs.c
+ gen_cheb.c
+ p_series.c)
+
+source_group("Source Files\\Bin" FILES ${CS2CS_SRC})
+
+if(WIN32)
+ set(CS2CS_SRC ${CS2CS_SRC} emess.c)
+endif(WIN32)
+
+add_executable(cs2cs ${CS2CS_SRC} ${CS2CS_INCLUDE})
+target_link_libraries(cs2cs proj m)
+install(TARGETS cs2cs
+ RUNTIME DESTINATION ${BINDIR})
diff --git a/src/bin_geod.cmake b/src/bin_geod.cmake
new file mode 100644
index 00000000..d06f4dd6
--- /dev/null
+++ b/src/bin_geod.cmake
@@ -0,0 +1,16 @@
+set(GEOD_SRC geod.c
+ geodesic.c geod_set.c geod_interface.c )
+set(GEOD_INCLUDE geodesic.h geod_interface.h)
+
+source_group("Source Files\\Bin" FILES ${GEOD_SRC} ${GEOD_INCLUDE})
+
+if(WIN32)
+ set(GEOD_SRC ${GEOD_SRC} emess.c)
+endif(WIN32)
+
+#Executable
+add_executable(geod ${GEOD_SRC} ${GEOD_INCLUDE})
+target_link_libraries(geod ${PROJ_LIBRARIES})
+install(TARGETS geod
+ RUNTIME DESTINATION ${BINDIR})
+
diff --git a/src/bin_proj.cmake b/src/bin_proj.cmake
new file mode 100644
index 00000000..f20d2f3f
--- /dev/null
+++ b/src/bin_proj.cmake
@@ -0,0 +1,19 @@
+set(PROJ_SRC proj.c
+ gen_cheb.c
+ p_series.c)
+
+source_group("Source Files\\Bin" FILES ${PROJ_SRC})
+
+if(WIN32)
+ set(PROJ_SRC ${PROJ_SRC} emess.c)
+endif(WIN32)
+
+#Executable
+add_executable(binproj ${PROJ_SRC})
+set_target_properties(binproj
+ PROPERTIES
+ OUTPUT_NAME proj)
+target_link_libraries(binproj ${PROJ_LIBRARIES})
+install(TARGETS binproj
+ RUNTIME DESTINATION ${BINDIR})
+
diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake
new file mode 100644
index 00000000..494625f6
--- /dev/null
+++ b/src/lib_proj.cmake
@@ -0,0 +1,315 @@
+##############################################
+### SWITCH BETWEEN STATIC OR SHARED LIBRARY###
+##############################################
+colormsg(_HIBLUE_ "Configuring proj library:")
+message(STATUS "")
+
+# default config, shared on unix and static on Windows
+if(UNIX)
+ set(BUILD_LIBPROJ_SHARED_DEFAULT ON )
+endif(UNIX)
+if( WIN32)
+ set(BUILD_LIBPROJ_SHARED_DEFAULT OFF)
+endif(WIN32)
+option(BUILD_LIBPROJ_SHARED "Build libproj library shared." ${BUILD_LIBPROJ_SHARED_DEFAULT})
+if(BUILD_LIBPROJ_SHARED)
+ set(PROJ_LIBRARY_TYPE SHARED)
+else(BUILD_LIBPROJ_SHARED)
+ set(PROJ_LIBRARY_TYPE STATIC)
+endif(BUILD_LIBPROJ_SHARED)
+
+
+option(USE_THREAD "Build libproj with thread/mutex support " ON)
+if(NOT USE_THREAD)
+ add_definitions( -DMUTEX_stub)
+endif(NOT USE_THREAD)
+find_package(Threads QUIET)
+if(Threads_FOUND AND CMAKE_USE_WIN32_THREADS_INIT )
+ add_definitions( -DMUTEX_win32)
+endif(Threads_FOUND AND CMAKE_USE_WIN32_THREADS_INIT )
+if(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT )
+ add_definitions( -DMUTEX_pthread)
+endif(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT )
+if(USE_THREAD AND NOT Threads_FOUND)
+ message(FATAL_ERROR "No thread library found and thread/mutex support is required by USE_THREAD option")
+endif(USE_THREAD AND NOT Threads_FOUND)
+
+
+##############################################
+### librairie source list and include_list ###
+##############################################
+SET(SRC_LIBPROJ_PJ
+ nad_init.c
+ PJ_aea.c
+ PJ_aeqd.c
+ PJ_airy.c
+ PJ_aitoff.c
+ PJ_august.c
+ PJ_bacon.c
+ PJ_bipc.c
+ PJ_boggs.c
+ PJ_bonne.c
+ PJ_calcofi.c
+ PJ_cass.c
+ PJ_cc.c
+ PJ_cea.c
+ PJ_chamb.c
+ PJ_collg.c
+ PJ_crast.c
+ PJ_denoy.c
+ PJ_eck1.c
+ PJ_eck2.c
+ PJ_eck3.c
+ PJ_eck4.c
+ PJ_eck5.c
+ PJ_eqc.c
+ PJ_eqdc.c
+ PJ_fahey.c
+ PJ_fouc_s.c
+ PJ_gall.c
+ PJ_geos.c
+ PJ_gins8.c
+ PJ_gnom.c
+ PJ_gn_sinu.c
+ PJ_goode.c
+ PJ_gstmerc.c
+ PJ_hammer.c
+ PJ_hatano.c
+ PJ_igh.c
+ PJ_isea.c
+ PJ_imw_p.c
+ PJ_krovak.c
+ PJ_labrd.c
+ PJ_laea.c
+ PJ_lagrng.c
+ PJ_larr.c
+ PJ_lask.c
+ PJ_lcca.c
+ PJ_lcc.c
+ PJ_loxim.c
+ PJ_lsat.c
+ PJ_mbt_fps.c
+ PJ_mbtfpp.c
+ PJ_mbtfpq.c
+ PJ_merc.c
+ PJ_mill.c
+ PJ_mod_ster.c
+ PJ_moll.c
+ PJ_natearth.c
+ PJ_nell.c
+ PJ_nell_h.c
+ PJ_nocol.c
+ PJ_nsper.c
+ PJ_nzmg.c
+ PJ_ob_tran.c
+ PJ_ocea.c
+ PJ_oea.c
+ PJ_omerc.c
+ PJ_ortho.c
+ PJ_poly.c
+ PJ_putp2.c
+ PJ_putp3.c
+ PJ_putp4p.c
+ PJ_putp5.c
+ PJ_putp6.c
+ PJ_qsc.c
+ PJ_robin.c
+ PJ_rpoly.c
+ PJ_sconics.c
+ PJ_somerc.c
+ PJ_sterea.c
+ PJ_stere.c
+ PJ_sts.c
+ PJ_tcc.c
+ PJ_tcea.c
+ PJ_tmerc.c
+ PJ_tpeqd.c
+ PJ_urm5.c
+ PJ_urmfps.c
+ PJ_vandg.c
+ PJ_vandg2.c
+ PJ_vandg4.c
+ PJ_wag2.c
+ PJ_wag3.c
+ PJ_wag7.c
+ PJ_wink1.c
+ PJ_wink2.c
+ proj_etmerc.c
+)
+
+SET(SRC_LIBPROJ_CORE
+ aasincos.c
+ adjlon.c
+ bch2bps.c
+ bchgen.c
+ biveval.c
+ dmstor.c
+ emess.c
+ geocent.c
+ geocent.h
+ hypot.c
+ mk_cheby.c
+ nad_cvt.c
+ nad_init.c
+ nad_intr.c
+ pj_apply_gridshift.c
+ pj_apply_vgridshift.c
+ pj_auth.c
+ pj_ctx.c
+ pj_fileapi.c
+ pj_datum_set.c
+ pj_datums.c
+ pj_deriv.c
+ pj_ell_set.c
+ pj_ellps.c
+ pj_errno.c
+ pj_factors.c
+ pj_fwd.c
+ pj_gauss.c
+ pj_gc_reader.c
+ pj_geocent.c
+ pj_gridcatalog.c
+ pj_gridinfo.c
+ pj_gridlist.c
+ pj_healpix.c
+ pj_init.c
+ pj_initcache.c
+ pj_inv.c
+ pj_latlong.c
+ pj_list.c
+ pj_log.c
+ pj_malloc.c
+ pj_mlfn.c
+ pj_msfn.c
+ pj_mutex.c
+ pj_open_lib.c
+ pj_param.c
+ pj_phi2.c
+ pj_pr_list.c
+ pj_qsfn.c
+ pj_release.c
+ pj_strerrno.c
+ pj_transform.c
+ pj_tsfn.c
+ pj_units.c
+ pj_utils.c
+ pj_zpoly1.c
+ proj_mdist.c
+ proj_rouss.c
+ rtodms.c
+ vector1.c
+ )
+
+set(HEADERS_LIBPROJ
+ pj_list.h
+ emess.h
+ projects.h
+ nad_list.h
+ proj_api.h
+ )
+
+# Group source files for IDE source explorers (e.g. Visual Studio)
+source_group("Header Files" FILES ${HEADERS_LIBPROJ})
+source_group("Source Files\\Core" FILES ${SRC_LIBPROJ_CORE})
+source_group("Source Files\\PJ" FILES ${SRC_LIBPROJ_PJ})
+source_group("CMake Files" FILES CMakeLists.txt)
+
+#################################################
+## java wrapping with jni
+#################################################
+option(JNI_SUPPORT "Build support of java/jni wrapping for proj library" OFF)
+find_package(JNI QUIET)
+if(JNI_SUPPORT AND NOT JNI_FOUND)
+ message(FATAL_ERROR "jni support is required but jni is not found")
+endif(JNI_SUPPORT AND NOT JNI_FOUND)
+boost_report_value(JNI_SUPPORT)
+if(JNI_SUPPORT)
+ set(SRC_LIBPROJ_CORE ${SRC_LIBPROJ_CORE}
+ jniproj.c )
+ set(HEADERS_LIBPROJ ${HEADERS_LIBPROJ}
+ org_proj4_PJ.h
+ org_proj4_Projections.h)
+ source_group("Source Files\\JNI" FILES ${SRC_LIBPROJ_JNI})
+ add_definitions(-DJNI_ENABLED)
+ include_directories( ${JNI_INCLUDE_DIRS})
+ boost_report_value(JNI_INCLUDE_DIRS)
+endif(JNI_SUPPORT)
+
+#################################################
+## targets: libproj and proj_config.h
+#################################################
+set(ALL_LIBPROJ_SOURCES ${SRC_LIBPROJ_PJ} ${SRC_LIBPROJ_CORE})
+set(ALL_LIBPROJ_HEADERS ${HEADERS_LIBPROJ} )
+if(WIN32 AND BUILD_LIBPROJ_SHARED)
+ set(ALL_LIBPROJ_SOURCES ${ALL_LIBPROJ_SOURCES} proj.def )
+endif(WIN32 AND BUILD_LIBPROJ_SHARED)
+
+# Core targets configuration
+string(TOLOWER "${PROJECT_INTERN_NAME}" PROJECTNAMEL)
+set(PROJ_CORE_TARGET ${PROJECTNAMEL})
+proj_target_output_name(${PROJ_CORE_TARGET} PROJ_CORE_TARGET_OUTPUT_NAME)
+
+add_library( ${PROJ_CORE_TARGET}
+ ${PROJ_LIBRARY_TYPE}
+ ${ALL_LIBPROJ_SOURCES}
+ ${ALL_LIBPROJ_HEADERS}
+ ${PROJ_RESOURCES} )
+
+
+if(WIN32)
+ set_target_properties(${PROJ_CORE_TARGET}
+ PROPERTIES
+ OUTPUT_NAME "${PROJ_CORE_TARGET_OUTPUT_NAME}"
+ VERSION ${ ${PROJECT_INTERN_NAME}_VERSION }
+ CLEAN_DIRECT_OUTPUT 1)
+elseif(BUILD_FRAMEWORKS_AND_BUNDLE)
+ set_target_properties(${PROJ_CORE_TARGET}
+ PROPERTIES
+ INSTALL_NAME_DIR ${PROJ_INSTALL_NAME_DIR}
+ CLEAN_DIRECT_OUTPUT 1)
+else()
+ set_target_properties(${PROJ_CORE_TARGET}
+ PROPERTIES
+ VERSION "${${PROJECT_INTERN_NAME}_VERSION}"
+ SOVERSION "${${PROJECT_INTERN_NAME}_SOVERSION}"
+ CLEAN_DIRECT_OUTPUT 1)
+endif()
+
+set_target_properties(${PROJ_CORE_TARGET}
+ PROPERTIES
+ LINKER_LANGUAGE C)
+add_dependencies(${PROJ_CORE_TARGET} proj_config.h)
+
+##############################################
+# Link properties
+##############################################
+set(PROJ_LIBRARIES ${PROJ_CORE_TARGET} )
+if(UNIX AND BUILD_LIBPROJ_SHARED)
+ set(PROJ_LIBRARIES ${PROJ_LIBRARIES} m)
+endif(UNIX AND BUILD_LIBPROJ_SHARED)
+
+##############################################
+# install
+##############################################
+install(TARGETS ${PROJ_CORE_TARGET}
+ RUNTIME DESTINATION ${BINDIR}
+ LIBRARY DESTINATION ${LIBDIR}
+ ARCHIVE DESTINATION ${LIBDIR}
+ FRAMEWORK DESTINATION ${FRAMEWORKDIR})
+
+if(NOT BUILD_FRAMEWORKS_AND_BUNDLE)
+ install(FILES ${ALL_LIBPROJ_HEADERS}
+ DESTINATION ${INCLUDEDIR})
+endif(NOT BUILD_FRAMEWORKS_AND_BUNDLE)
+
+##############################################
+# Core configuration summary
+##############################################
+boost_report_value(PROJ_CORE_TARGET)
+boost_report_value(PROJ_CORE_TARGET_OUTPUT_NAME)
+boost_report_value(PROJ_LIBRARY_TYPE)
+boost_report_value(PROJ_LIBRARIES)
+
+
+
+