Skip to content

Commit

Permalink
Merge pull request #7 from RobertHue/master
Browse files Browse the repository at this point in the history
common lowercase cmake commands and enabled compatibility with vcpkg

looks good, thanks!
  • Loading branch information
qknight committed May 3, 2019
2 parents 2fb16f6 + e4bf8cb commit 032caf6
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 48 deletions.
File renamed without changes.
40 changes: 23 additions & 17 deletions CMakeLists.txt
Expand Up @@ -2,20 +2,26 @@

cmake_minimum_required(VERSION 3.0)

SET ( LIBNOISE_VERSION "1.0.0-cmake" )

OPTION(BUILD_SHARED_LIBS "Build shared libraries for libnoise" ON)
OPTION(BUILD_LIBNOISE_DOCUMENTATION "Create doxygen documentation for developers" OFF)
OPTION(BUILD_LIBNOISE_UTILS "Build utility functions for use with libnoise" ON)
OPTION(BUILD_LIBNOISE_EXAMPLES "Build libnoise examples" ON)

ADD_SUBDIRECTORY(src)
IF (BUILD_LIBNOISE_UTILS)
ADD_SUBDIRECTORY(noiseutils)
ENDIF()
IF (BUILD_LIBNOISE_EXAMPLES)
ADD_SUBDIRECTORY(examples)
ENDIF()
ADD_SUBDIRECTORY(doc)

#ADD_SUBDIRECTORY(samples)
set ( LIBNOISE_VERSION "1.0.0-cmake" )

option(BUILD_SHARED_LIBS "Build shared libraries for libnoise" ON)
option(BUILD_LIBNOISE_DOCUMENTATION "Create doxygen documentation for developers" OFF)
option(BUILD_LIBNOISE_UTILS "Build utility functions for use with libnoise" ON)
option(BUILD_LIBNOISE_EXAMPLES "Build libnoise examples" ON)

message(STATUS "CMAKE_INSTALL_BINDIR : " ${CMAKE_INSTALL_BINDIR})
message(STATUS "CMAKE_INSTALL_LIBDIR : " ${CMAKE_INSTALL_LIBDIR})

add_subdirectory(src)

if (BUILD_LIBNOISE_UTILS)
add_subdirectory(noiseutils)
endif()

if (BUILD_LIBNOISE_EXAMPLES)
add_subdirectory(examples)
endif()

add_subdirectory(doc)

#add_subdirectory(samples)
File renamed without changes.
File renamed without changes.
38 changes: 24 additions & 14 deletions noiseutils/CMakeLists.txt
@@ -1,26 +1,36 @@
SET(PROJECT_NAME libnoiseutils)
set(PROJECT_NAME libnoiseutils)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS YES CACHE BOOL "Export all symbols")
set(libSrcs ${libSrcs}
noiseutils.cpp
)
add_library(noiseutils SHARED ${libSrcs})
add_library(noiseutils-static STATIC ${libSrcs})

add_library(noiseutils SHARED noiseutils.cpp )
add_library(noiseutils-static STATIC noiseutils.cpp )

SET_TARGET_PROPERTIES( noiseutils PROPERTIES LIBNOISE_VERSION ${LIBNOISE_VERSION} )
SET_TARGET_PROPERTIES( noiseutils-static PROPERTIES LIBNOISE_VERSION ${LIBNOISE_VERSION} )
set_target_properties(noiseutils PROPERTIES LIBNOISE_VERSION ${LIBNOISE_VERSION})
set_target_properties(noiseutils-static PROPERTIES LIBNOISE_VERSION ${LIBNOISE_VERSION})

target_link_libraries(noiseutils noise)
target_link_libraries(noiseutils-static noise-static)

# I would like to see more projects using these defaults
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
ADD_DEFINITIONS( "-Wall -ansi -pedantic -O3" )
message(STATUS "noiseutils - using optimized compile settings with all warnings enabled")
add_compile_options(-Wall -ansi -pedantic -O3)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
message(STATUS "noiseutils - using optimized compile settings with all warnings enabled")
add_compile_options(/Wall /Ox)
endif()

# Where to look for noise headers
ADD_DEFINITIONS( "-I${PROJECT_SOURCE_DIR}/src" )
target_include_directories( noiseutils PRIVATE ${PROJECT_SOURCE_DIR}/src )
target_include_directories( noiseutils-static PRIVATE ${PROJECT_SOURCE_DIR}/src )

# install include files into /include
install( FILES "${PROJECT_SOURCE_DIR}/noiseutils/noiseutils.h"
DESTINATION "${CMAKE_INSTALL_PREFIX}/include/noise" )

# install include files into /usr/include
INSTALL( FILES "${PROJECT_SOURCE_DIR}/noiseutils/noiseutils.h" DESTINATION
"${CMAKE_INSTALL_PREFIX}/include/noise" )
# install dynamic libraries (.dll or .so) into /bin
install( TARGETS noiseutils DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" )

# install libraries into /lib
INSTALL( TARGETS noiseutils DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" )
INSTALL( TARGETS noiseutils-static DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" )
# install static libraries (.lib) into /lib
install( TARGETS noiseutils-static DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" )
39 changes: 22 additions & 17 deletions src/CMakeLists.txt
@@ -1,8 +1,8 @@
# http://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/02/Mal-ausspannen

SET(PROJECT_NAME libnoise)
set(PROJECT_NAME libnoise)

INCLUDE_DIRECTORIES (noise)
include_directories (noise)

set(libSrcs ${libSrcs}
noisegen.cpp
Expand Down Expand Up @@ -46,35 +46,40 @@ set(libSrcs ${libSrcs}

IF(BUILD_SHARED_LIBS)
IF (WIN32)
add_library( noise SHARED ${libSrcs} win32/dllmain.cpp)
message(STATUS "build - shared for win32 (x86)")
add_library( noise SHARED ${libSrcs} win32/dllmain.cpp)
ELSE()
add_library( noise SHARED ${libSrcs} )
message(STATUS "build - shared for others")
add_library( noise SHARED ${libSrcs} )
ENDIF()
ENDIF()

add_library( noise-static STATIC ${libSrcs} )

# this value is set in the root CMakeLists.txt
SET_TARGET_PROPERTIES( noise PROPERTIES LIBNOISE_VERSION ${LIBNOISE_VERSION} )
SET_TARGET_PROPERTIES( noise-static PROPERTIES LIBNOISE_VERSION ${LIBNOISE_VERSION} )
set_target_properties( noise PROPERTIES LIBNOISE_VERSION ${LIBNOISE_VERSION} )
set_target_properties( noise-static PROPERTIES LIBNOISE_VERSION ${LIBNOISE_VERSION} )

target_compile_definitions( noise PRIVATE NOISE_BUILD_DLL)
target_compile_definitions( noise-static PUBLIC NOISE_STATIC)

SET_TARGET_PROPERTIES( noise-static PROPERTIES OUTPUT_NAME "noise" )
set_target_properties( noise-static PROPERTIES OUTPUT_NAME "noise" )

# i would like to see more projects using these defaults
# I would like to see more projects using these defaults
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
ADD_DEFINITIONS( "-Wall -ansi -pedantic -O3" )
message(STATUS "noiseutils - using optimized compile settings with all warnings enabled")
add_compile_options(-Wall -ansi -pedantic -O3)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
message(STATUS "noiseutils - using optimized compile settings with all warnings enabled")
add_compile_options(/Wall /Ox)
endif()

# install include files into /usr/include
INSTALL( DIRECTORY "${PROJECT_SOURCE_DIR}/src/noise" DESTINATION
"${CMAKE_INSTALL_PREFIX}/include" )

# install libraries into /lib
INSTALL( TARGETS noise DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" )
INSTALL( TARGETS noise-static DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" )

# install include files into /include
install( DIRECTORY "${PROJECT_SOURCE_DIR}/src/noise"
DESTINATION "${CMAKE_INSTALL_PREFIX}/include" )

# install dynamic libraries (.dll or .so) into /bin
install( TARGETS noise DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" )

# install static libraries (.lib) into /lib
install( TARGETS noise-static DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" )

0 comments on commit 032caf6

Please sign in to comment.