X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=68a9cb0d2c6aa1e30072c7f4adff11e437207e19;hb=48d955206bccfd6d4fe25ad0934765428fe7fda2;hp=b226830631aad446335d7bb1bb5aa5b6273185c5;hpb=e1bbe336d1736703a6b1565cfa5565fb276643a1;p=lwext4.git diff --git a/CMakeLists.txt b/CMakeLists.txt index b226830..68a9cb0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,27 +2,28 @@ project(lwext4 C) cmake_minimum_required(VERSION 2.8) -include_directories(lwext4) +include_directories(${PROJECT_BINARY_DIR}/include) include_directories(blockdev/filedev) include_directories(blockdev/filedev_win) set(BLOCKDEV_TYPE none) +add_definitions(-DCONFIG_USE_DEFAULT_CONFIG=0) add_definitions(-DVERSION="${VERSION}") #Examples if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m0) #... elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m3) - #... + add_definitions(-DCONFIG_UNALIGNED_ACCESS=1) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL arm-sim) #... elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m4) - #... + add_definitions(-DCONFIG_UNALIGNED_ACCESS=1) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL bf518) #... elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL avrxmega7) - #... + add_definitions(-DCONFIG_HAVE_OWN_ERRNO=1) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL msp430g2210) add_definitions(-DCONFIG_DEBUG_PRINTF=0) add_definitions(-DCONFIG_DEBUG_ASSERT=0) @@ -31,11 +32,16 @@ elseif(LIB_ONLY) add_definitions(-DCONFIG_DEBUG_PRINTF=0) add_definitions(-DCONFIG_DEBUG_ASSERT=0) add_definitions(-DCONFIG_HAVE_OWN_OFLAGS=1) - add_definitions(-DCONFIG_HAVE_OWN_ERRNO=1) + add_definitions(-DCONFIG_HAVE_OWN_ERRNO=0) add_definitions(-DCONFIG_BLOCK_DEV_CACHE_SIZE=16) else() #Generic example target - set(BLOCKDEV_TYPE linux) + if (WIN32) + set(BLOCKDEV_TYPE windows) + else() + set(BLOCKDEV_TYPE linux) + endif() + set (INSTALL_LIB 1) add_definitions(-DCONFIG_HAVE_OWN_OFLAGS=0) add_definitions(-DCONFIG_HAVE_OWN_ERRNO=0) add_definitions(-DCONFIG_HAVE_OWN_ASSERT=0) @@ -43,13 +49,46 @@ else() add_subdirectory(fs_test) endif() +macro(output_configure) + get_property( + definitions + DIRECTORY + PROPERTY COMPILE_DEFINITIONS + ) + file(WRITE + ${PROJECT_BINARY_DIR}/include/generated/ext4_config.h + "") + foreach(item ${definitions}) + string(REGEX MATCH "^CONFIG_" match_res ${item}) + if(match_res) + string(REGEX REPLACE "=(.+)$" "" replace_res ${item}) + string(CONFIGURE + "#define ${replace_res} ${CMAKE_MATCH_1}" + output_str) + file(APPEND + ${PROJECT_BINARY_DIR}/include/generated/ext4_config.h + "${output_str}\n") + endif() + endforeach() +endmacro() +output_configure() + add_subdirectory(blockdev) #Library build -add_subdirectory(lwext4) +add_subdirectory(src) #Detect all possible warnings for lwext4 target -set_target_properties(lwext4 PROPERTIES COMPILE_FLAGS "-Wall -Wextra -pedantic") +if (NOT CMAKE_COMPILER_IS_GNUCC) + set_target_properties(lwext4 PROPERTIES COMPILE_FLAGS "") +else() + set_target_properties(lwext4 PROPERTIES COMPILE_FLAGS "-Wall -Wextra -pedantic") +endif() +#Config file generation +file( + COPY include + DESTINATION . +) #DISTRIBUTION set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")